Full Code of node-real/bsc-erigon for AI

main b00927fed86a cached
7285 files
68.6 MB
18.4M tokens
32784 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (73,456K chars total). Download the full file to get everything.
Repository: node-real/bsc-erigon
Branch: main
Commit: b00927fed86a
Files: 7285
Total size: 68.6 MB

Directory structure:
gitextract_5uxqjddf/

├── .buildkite/
│   ├── hooks/
│   │   └── pre-command
│   └── pipeline.yml
├── .dockerignore
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.md
│   │   ├── feature.md
│   │   └── question.md
│   ├── dependabot.yml
│   ├── no-response.yml
│   ├── stale.yml
│   └── workflows/
│       ├── backups-dashboards.yml
│       ├── check.yml
│       ├── ci-cd-main-branch-docker-images.yml
│       ├── ci.yml
│       ├── docker-image-remove.yml
│       ├── docker-tags.yml
│       ├── kurtosis/
│       │   ├── deposit-request.io
│       │   ├── eip7702-test.io
│       │   ├── eip7702-txpool-invalidation.io
│       │   ├── el-triggered-consolidation-of-consolidations.io
│       │   ├── el-triggered-consolidations-test.io
│       │   ├── el-triggered-exit.io
│       │   ├── el-triggered-withdrawal.io
│       │   ├── fast_lifecycle.io
│       │   ├── fusaka.io
│       │   ├── pectra.io
│       │   ├── regular-assertoor.io
│       │   ├── txpool-assertoor-short.io
│       │   ├── txpool-assertoor.io
│       │   └── validator-lifecycle-test-v3.io
│       ├── lint.yml
│       ├── manifest.yml
│       ├── qa-clean-exit-block-downloading.yml
│       ├── qa-clean-exit-snapshot-downloading.yml
│       ├── qa-constrained-tip-tracking.yml
│       ├── qa-rpc-integration-tests-gnosis.yml
│       ├── qa-rpc-integration-tests-latest.yml
│       ├── qa-rpc-integration-tests-polygon.yml
│       ├── qa-rpc-integration-tests.yml
│       ├── qa-rpc-performance-tests.yml
│       ├── qa-rpc-test-bisection-tool.yml
│       ├── qa-snap-download.yml
│       ├── qa-sync-from-scratch-minimal-node.yml
│       ├── qa-sync-from-scratch.yml
│       ├── qa-sync-test-bisection-tool.yml
│       ├── qa-sync-with-externalcl.yml
│       ├── qa-test-report.yml
│       ├── qa-tip-tracking-gnosis.yml
│       ├── qa-tip-tracking-polygon.yml
│       ├── qa-tip-tracking.yml
│       ├── qa-txpool-performance-test.yml
│       ├── release.yml
│       ├── reusable-release-build-debian-pkg.yml
│       ├── scripts/
│       │   ├── run_rpc_tests.sh
│       │   ├── run_rpc_tests_ethereum.sh
│       │   ├── run_rpc_tests_ethereum_latest.sh
│       │   ├── run_rpc_tests_gnosis.sh
│       │   ├── run_rpc_tests_polygon.sh
│       │   └── test_report/
│       │       ├── debug.ts
│       │       ├── generate-test-report.ts
│       │       ├── package.json
│       │       └── tsconfig.json
│       ├── test-all-erigon-race.yml
│       ├── test-all-erigon.yml
│       ├── test-erigon-is-library.yml
│       ├── test-hive-eest.yml
│       ├── test-hive.yml
│       ├── test-integration-caplin.yml
│       └── test-kurtosis-assertoor.yml
├── .gitignore
├── .gitmodules
├── .golangci.yml
├── .readthedocs.yml
├── AUTHORS
├── COPYING
├── ChangeLog.md
├── Dockerfile
├── Makefile
├── README.md
├── RELEASE_INSTRUCTIONS.md
├── cl/
│   ├── abstract/
│   │   ├── beacon_state.go
│   │   └── mock_services/
│   │       ├── beacon_state_mock.go
│   │       ├── beacon_state_mutator_mock.go
│   │       └── beacon_state_reader_mock.go
│   ├── aggregation/
│   │   ├── mock_services/
│   │   │   └── aggregation_pool_mock.go
│   │   ├── pool.go
│   │   ├── pool_impl.go
│   │   └── pool_test.go
│   ├── antiquary/
│   │   ├── antiquary.go
│   │   ├── beacon_states_collector.go
│   │   ├── state_antiquary.go
│   │   ├── state_antiquary_test.go
│   │   ├── tests/
│   │   │   ├── test_data/
│   │   │   │   ├── bellatrix/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── blocks_10.ssz_snappy
│   │   │   │   │   ├── blocks_11.ssz_snappy
│   │   │   │   │   ├── blocks_12.ssz_snappy
│   │   │   │   │   ├── blocks_13.ssz_snappy
│   │   │   │   │   ├── blocks_14.ssz_snappy
│   │   │   │   │   ├── blocks_15.ssz_snappy
│   │   │   │   │   ├── blocks_16.ssz_snappy
│   │   │   │   │   ├── blocks_17.ssz_snappy
│   │   │   │   │   ├── blocks_18.ssz_snappy
│   │   │   │   │   ├── blocks_19.ssz_snappy
│   │   │   │   │   ├── blocks_2.ssz_snappy
│   │   │   │   │   ├── blocks_20.ssz_snappy
│   │   │   │   │   ├── blocks_21.ssz_snappy
│   │   │   │   │   ├── blocks_22.ssz_snappy
│   │   │   │   │   ├── blocks_23.ssz_snappy
│   │   │   │   │   ├── blocks_24.ssz_snappy
│   │   │   │   │   ├── blocks_25.ssz_snappy
│   │   │   │   │   ├── blocks_26.ssz_snappy
│   │   │   │   │   ├── blocks_27.ssz_snappy
│   │   │   │   │   ├── blocks_28.ssz_snappy
│   │   │   │   │   ├── blocks_29.ssz_snappy
│   │   │   │   │   ├── blocks_3.ssz_snappy
│   │   │   │   │   ├── blocks_30.ssz_snappy
│   │   │   │   │   ├── blocks_31.ssz_snappy
│   │   │   │   │   ├── blocks_32.ssz_snappy
│   │   │   │   │   ├── blocks_33.ssz_snappy
│   │   │   │   │   ├── blocks_34.ssz_snappy
│   │   │   │   │   ├── blocks_35.ssz_snappy
│   │   │   │   │   ├── blocks_36.ssz_snappy
│   │   │   │   │   ├── blocks_37.ssz_snappy
│   │   │   │   │   ├── blocks_38.ssz_snappy
│   │   │   │   │   ├── blocks_39.ssz_snappy
│   │   │   │   │   ├── blocks_4.ssz_snappy
│   │   │   │   │   ├── blocks_40.ssz_snappy
│   │   │   │   │   ├── blocks_41.ssz_snappy
│   │   │   │   │   ├── blocks_42.ssz_snappy
│   │   │   │   │   ├── blocks_43.ssz_snappy
│   │   │   │   │   ├── blocks_44.ssz_snappy
│   │   │   │   │   ├── blocks_45.ssz_snappy
│   │   │   │   │   ├── blocks_46.ssz_snappy
│   │   │   │   │   ├── blocks_47.ssz_snappy
│   │   │   │   │   ├── blocks_48.ssz_snappy
│   │   │   │   │   ├── blocks_49.ssz_snappy
│   │   │   │   │   ├── blocks_5.ssz_snappy
│   │   │   │   │   ├── blocks_50.ssz_snappy
│   │   │   │   │   ├── blocks_51.ssz_snappy
│   │   │   │   │   ├── blocks_52.ssz_snappy
│   │   │   │   │   ├── blocks_53.ssz_snappy
│   │   │   │   │   ├── blocks_54.ssz_snappy
│   │   │   │   │   ├── blocks_55.ssz_snappy
│   │   │   │   │   ├── blocks_56.ssz_snappy
│   │   │   │   │   ├── blocks_57.ssz_snappy
│   │   │   │   │   ├── blocks_58.ssz_snappy
│   │   │   │   │   ├── blocks_59.ssz_snappy
│   │   │   │   │   ├── blocks_6.ssz_snappy
│   │   │   │   │   ├── blocks_60.ssz_snappy
│   │   │   │   │   ├── blocks_61.ssz_snappy
│   │   │   │   │   ├── blocks_62.ssz_snappy
│   │   │   │   │   ├── blocks_63.ssz_snappy
│   │   │   │   │   ├── blocks_64.ssz_snappy
│   │   │   │   │   ├── blocks_65.ssz_snappy
│   │   │   │   │   ├── blocks_66.ssz_snappy
│   │   │   │   │   ├── blocks_67.ssz_snappy
│   │   │   │   │   ├── blocks_68.ssz_snappy
│   │   │   │   │   ├── blocks_69.ssz_snappy
│   │   │   │   │   ├── blocks_7.ssz_snappy
│   │   │   │   │   ├── blocks_70.ssz_snappy
│   │   │   │   │   ├── blocks_71.ssz_snappy
│   │   │   │   │   ├── blocks_72.ssz_snappy
│   │   │   │   │   ├── blocks_73.ssz_snappy
│   │   │   │   │   ├── blocks_74.ssz_snappy
│   │   │   │   │   ├── blocks_75.ssz_snappy
│   │   │   │   │   ├── blocks_76.ssz_snappy
│   │   │   │   │   ├── blocks_77.ssz_snappy
│   │   │   │   │   ├── blocks_78.ssz_snappy
│   │   │   │   │   ├── blocks_79.ssz_snappy
│   │   │   │   │   ├── blocks_8.ssz_snappy
│   │   │   │   │   ├── blocks_80.ssz_snappy
│   │   │   │   │   ├── blocks_81.ssz_snappy
│   │   │   │   │   ├── blocks_82.ssz_snappy
│   │   │   │   │   ├── blocks_83.ssz_snappy
│   │   │   │   │   ├── blocks_84.ssz_snappy
│   │   │   │   │   ├── blocks_85.ssz_snappy
│   │   │   │   │   ├── blocks_86.ssz_snappy
│   │   │   │   │   ├── blocks_87.ssz_snappy
│   │   │   │   │   ├── blocks_88.ssz_snappy
│   │   │   │   │   ├── blocks_89.ssz_snappy
│   │   │   │   │   ├── blocks_9.ssz_snappy
│   │   │   │   │   ├── blocks_90.ssz_snappy
│   │   │   │   │   ├── blocks_91.ssz_snappy
│   │   │   │   │   ├── blocks_92.ssz_snappy
│   │   │   │   │   ├── blocks_93.ssz_snappy
│   │   │   │   │   ├── blocks_94.ssz_snappy
│   │   │   │   │   ├── blocks_95.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   ├── capella/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   ├── electra/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   └── phase0/
│   │   │   │       ├── blocks_0.ssz_snappy
│   │   │   │       ├── blocks_1.ssz_snappy
│   │   │   │       ├── meta.yaml
│   │   │   │       ├── post.ssz_snappy
│   │   │   │       └── pre.ssz_snappy
│   │   │   └── tests.go
│   │   └── utils.go
│   ├── beacon/
│   │   ├── beacon_router_configuration/
│   │   │   └── cfg.go
│   │   ├── beaconevents/
│   │   │   ├── emitter_test.go
│   │   │   ├── event_notifier.go
│   │   │   ├── model.go
│   │   │   ├── operation_feed.go
│   │   │   └── state_feed.go
│   │   ├── beaconhttp/
│   │   │   ├── api.go
│   │   │   ├── args.go
│   │   │   ├── beacon_response.go
│   │   │   └── types.go
│   │   ├── beacontest/
│   │   │   ├── errors.go
│   │   │   ├── harness.go
│   │   │   ├── harness_test.go
│   │   │   ├── harness_test_data.yml
│   │   │   └── linux_basepathfs.go
│   │   ├── builder/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── interface.go
│   │   │   ├── mock_services/
│   │   │   │   └── builder_client_mock.go
│   │   │   ├── test_data/
│   │   │   │   ├── mock_blinded_block.json
│   │   │   │   ├── mock_blinded_block_resp.json
│   │   │   │   └── mock_header.json
│   │   │   └── types.go
│   │   ├── building/
│   │   │   ├── endpoints.go
│   │   │   └── state.go
│   │   ├── handler/
│   │   │   ├── attestation_rewards.go
│   │   │   ├── blobs.go
│   │   │   ├── block_production.go
│   │   │   ├── blocks.go
│   │   │   ├── builder.go
│   │   │   ├── committees.go
│   │   │   ├── config.go
│   │   │   ├── data_test.go
│   │   │   ├── duties_attester.go
│   │   │   ├── duties_proposer.go
│   │   │   ├── duties_sync.go
│   │   │   ├── events.go
│   │   │   ├── forkchoice.go
│   │   │   ├── format.go
│   │   │   ├── genesis.go
│   │   │   ├── handler.go
│   │   │   ├── harness/
│   │   │   │   ├── attestation_rewards_bellatrix.yml
│   │   │   │   ├── attestation_rewards_phase0.yml
│   │   │   │   ├── blob_sidecars.yaml
│   │   │   │   ├── blocks.yml
│   │   │   │   ├── committees.yml
│   │   │   │   ├── committees_f.yml
│   │   │   │   ├── config.yml
│   │   │   │   ├── duties_attester.yml
│   │   │   │   ├── duties_attester_f.yml
│   │   │   │   ├── duties_proposer.yml
│   │   │   │   ├── duties_sync_bellatrix.yml
│   │   │   │   ├── expected_withdrawals.yml
│   │   │   │   ├── fork_choice.yml
│   │   │   │   ├── headers.yml
│   │   │   │   ├── lightclient.yml
│   │   │   │   ├── lighthouse.yml
│   │   │   │   ├── liveness.yml
│   │   │   │   └── validators.yml
│   │   │   ├── harness_test.go
│   │   │   ├── headers.go
│   │   │   ├── lightclient.go
│   │   │   ├── lighthouse.go
│   │   │   ├── liveness.go
│   │   │   ├── node.go
│   │   │   ├── pool.go
│   │   │   ├── pool_test.go
│   │   │   ├── rewards.go
│   │   │   ├── rewards_test.go
│   │   │   ├── states.go
│   │   │   ├── states_test.go
│   │   │   ├── subscription.go
│   │   │   ├── test_data/
│   │   │   │   ├── attestations_1.json
│   │   │   │   ├── attestations_2.json
│   │   │   │   ├── attestations_3.json
│   │   │   │   ├── attestations_4.json
│   │   │   │   ├── blinded_block_1.json
│   │   │   │   ├── blob_sidecars_1.json
│   │   │   │   ├── block_1.json
│   │   │   │   ├── committees_1.yaml
│   │   │   │   ├── duties_1.yaml
│   │   │   │   ├── duties_sync_1.yaml
│   │   │   │   ├── expected_withdrawals_avg.json
│   │   │   │   ├── expected_withdrawals_head.json
│   │   │   │   ├── forkchoice_1.yaml
│   │   │   │   ├── harness_inclusion_global_1.json
│   │   │   │   ├── harness_inclusion_local_1.json
│   │   │   │   ├── head_validators_all.json
│   │   │   │   ├── head_validators_balances.json
│   │   │   │   ├── light_client_bootstrap_1.json
│   │   │   │   ├── light_client_finality_1.json
│   │   │   │   ├── light_client_optimistic_1.json
│   │   │   │   ├── light_client_update_1.json
│   │   │   │   ├── rewards_1.yaml
│   │   │   │   ├── rewards_2.json
│   │   │   │   ├── states_1.yaml
│   │   │   │   ├── sync_committees_1.json
│   │   │   │   ├── validator_1.json
│   │   │   │   ├── validators_1.yaml
│   │   │   │   └── validators_some.json
│   │   │   ├── utils_test.go
│   │   │   ├── validator_registration.go
│   │   │   ├── validator_registration_test.go
│   │   │   ├── validator_test.go
│   │   │   └── validators.go
│   │   ├── router.go
│   │   ├── rw.go
│   │   └── synced_data/
│   │       ├── interface.go
│   │       ├── mock_services/
│   │       │   └── synced_data_mock.go
│   │       └── synced_data.go
│   ├── clparams/
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── global.go
│   │   ├── initial_state/
│   │   │   ├── chiado.state.ssz
│   │   │   ├── gnosis.state.ssz
│   │   │   ├── initial_state.go
│   │   │   ├── initial_state_test.go
│   │   │   ├── mainnet.state.ssz
│   │   │   └── sepolia.state.ssz
│   │   └── version.go
│   ├── clstages/
│   │   └── clstages.go
│   ├── cltypes/
│   │   ├── aggregate.go
│   │   ├── beacon_block.go
│   │   ├── beacon_block_blinded.go
│   │   ├── beacon_block_interface.go
│   │   ├── beacon_block_test.go
│   │   ├── beacon_committee_subscriptions.go
│   │   ├── beacon_header.go
│   │   ├── beacon_kzgcommitment.go
│   │   ├── beacon_kzgcommitment_test.go
│   │   ├── blob_sidecar.go
│   │   ├── block_production.go
│   │   ├── bls_to_execution_change.go
│   │   ├── bls_to_execution_test.go
│   │   ├── builder.go
│   │   ├── clone.go
│   │   ├── column_sidecar.go
│   │   ├── contribution.go
│   │   ├── eth1_block.go
│   │   ├── eth1_data.go
│   │   ├── eth1_data_test.go
│   │   ├── eth1_header.go
│   │   ├── eth1_header_test.go
│   │   ├── execution_requests.go
│   │   ├── fork.go
│   │   ├── fork_test.go
│   │   ├── historical_summary.go
│   │   ├── historical_summary_test.go
│   │   ├── indexed_attestation.go
│   │   ├── justification_bits.go
│   │   ├── justification_bits_test.go
│   │   ├── light_client.go
│   │   ├── lightclient_utils/
│   │   │   └── lightclient.go
│   │   ├── network.go
│   │   ├── network_test.go
│   │   ├── participation_flags.go
│   │   ├── participation_flags_test.go
│   │   ├── slashings.go
│   │   ├── slashings_test.go
│   │   ├── solid/
│   │   │   ├── README.md
│   │   │   ├── attestation.go
│   │   │   ├── attestation_data.go
│   │   │   ├── bitlist.go
│   │   │   ├── bitlist_test.go
│   │   │   ├── bitvector.go
│   │   │   ├── bitvector_test.go
│   │   │   ├── checkpoint.go
│   │   │   ├── consolidation.go
│   │   │   ├── deposits.go
│   │   │   ├── extra_data.go
│   │   │   ├── extra_data_test.go
│   │   │   ├── hash_list.go
│   │   │   ├── hash_vector.go
│   │   │   ├── hashutil.go
│   │   │   ├── hashutil_test.go
│   │   │   ├── interfaces.go
│   │   │   ├── list_ssz.go
│   │   │   ├── list_ssz_test.go
│   │   │   ├── list_test.go
│   │   │   ├── participation_bitlist.go
│   │   │   ├── participation_bitlist_test.go
│   │   │   ├── pending_attestation.go
│   │   │   ├── pending_attestation_test.go
│   │   │   ├── ranger.go
│   │   │   ├── sync_committee.go
│   │   │   ├── sync_committee_test.go
│   │   │   ├── transactions.go
│   │   │   ├── uint64_list.go
│   │   │   ├── uint64_raw_list.go
│   │   │   ├── uint64_vector.go
│   │   │   ├── uint64slice_byte.go
│   │   │   ├── uint64slice_byte_test.go
│   │   │   ├── validator.go
│   │   │   ├── validator_set.go
│   │   │   ├── validator_test.go
│   │   │   └── withdrawal.go
│   │   ├── sync_aggregator_selection_data.go
│   │   ├── testdata/
│   │   │   ├── block_test_gnosis_deneb.json
│   │   │   └── block_test_gnosis_deneb.ssz
│   │   ├── validator.go
│   │   ├── validator_test.go
│   │   └── withdrawal.go
│   ├── coverage
│   ├── das/
│   │   ├── mock_services/
│   │   │   └── peer_das_mock.go
│   │   ├── p2p_utils.go
│   │   ├── peer_das.go
│   │   ├── state/
│   │   │   ├── interface.go
│   │   │   ├── mock_services/
│   │   │   │   └── peer_das_state_reader_mock.go
│   │   │   └── state.go
│   │   └── utils/
│   │       ├── block_produce_utils.go
│   │       └── das_utils.go
│   ├── fork/
│   │   ├── fork.go
│   │   └── fork_test.go
│   ├── gossip/
│   │   └── gossip.go
│   ├── kzg/
│   │   ├── kzg_init.go
│   │   └── trusted_setup_4096.json
│   ├── merkle_tree/
│   │   ├── hasher.go
│   │   ├── init.go
│   │   ├── list.go
│   │   ├── merkle_root.go
│   │   ├── merkle_root_test.go
│   │   ├── merkle_tree.go
│   │   ├── merkle_tree_test.go
│   │   ├── primitives.go
│   │   ├── testdata/
│   │   │   └── serialized.ssz_snappy
│   │   ├── utils.go
│   │   └── zero.go
│   ├── monitor/
│   │   ├── metrics.go
│   │   └── shuffling_metrics/
│   │       └── shuffling_metrics.go
│   ├── persistence/
│   │   ├── base_encoding/
│   │   │   ├── primitives.go
│   │   │   ├── primitives_test.go
│   │   │   ├── rabbit.go
│   │   │   ├── rabbit_test.go
│   │   │   ├── ssz_queue.go
│   │   │   ├── ssz_queue_test.go
│   │   │   └── uint64_diff.go
│   │   ├── beacon_indicies/
│   │   │   ├── indicies.go
│   │   │   └── indicies_test.go
│   │   ├── blob_storage/
│   │   │   ├── blob_db.go
│   │   │   ├── blob_db_test.go
│   │   │   ├── data_column_db.go
│   │   │   ├── data_column_db_test.go
│   │   │   └── mock_services/
│   │   │       ├── blob_storage_mock.go
│   │   │       └── data_column_storage_mock.go
│   │   ├── format/
│   │   │   └── snapshot_format/
│   │   │       ├── blocks.go
│   │   │       ├── blocks_test.go
│   │   │       ├── getters/
│   │   │       │   └── execution_snapshot.go
│   │   │       ├── test_data/
│   │   │       │   ├── altair.ssz_snappy
│   │   │       │   ├── bellatrix.ssz_snappy
│   │   │       │   ├── capella.ssz_snappy
│   │   │       │   ├── deneb.ssz_snappy
│   │   │       │   └── phase0.ssz_snappy
│   │   │       └── test_util.go
│   │   ├── genesisdb/
│   │   │   ├── genesis_db.go
│   │   │   └── interface.go
│   │   ├── state/
│   │   │   ├── epoch_data.go
│   │   │   ├── epoch_data_test.go
│   │   │   ├── historical_states_reader/
│   │   │   │   ├── attesting_indicies.go
│   │   │   │   ├── historical_states_reader.go
│   │   │   │   └── historical_states_reader_test.go
│   │   │   ├── slot_data.go
│   │   │   ├── slot_data_test.go
│   │   │   ├── state_accessors.go
│   │   │   ├── static_validator_table.go
│   │   │   ├── static_validator_table_test.go
│   │   │   ├── validator_events.go
│   │   │   └── validator_events_test.go
│   │   └── test_data/
│   │       └── test_block.ssz_snappy
│   ├── phase1/
│   │   ├── core/
│   │   │   ├── caches/
│   │   │   │   └── shuffled_indicies_cache.go
│   │   │   ├── checkpoint_sync/
│   │   │   │   ├── checkpoint_sync_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── local_checkpoint_syncer.go
│   │   │   │   ├── remote_checkpoint_sync.go
│   │   │   │   └── util.go
│   │   │   └── state/
│   │   │       ├── accessors.go
│   │   │       ├── cache.go
│   │   │       ├── cache_accessors.go
│   │   │       ├── cache_getters.go
│   │   │       ├── cache_mutators.go
│   │   │       ├── cache_setters.go
│   │   │       ├── copy.go
│   │   │       ├── lru/
│   │   │       │   └── lru.go
│   │   │       ├── mutators.go
│   │   │       ├── mutators_test.go
│   │   │       ├── raw/
│   │   │       │   ├── copy.go
│   │   │       │   ├── errors.go
│   │   │       │   ├── events.go
│   │   │       │   ├── getters.go
│   │   │       │   ├── hashing.go
│   │   │       │   ├── misc_test.go
│   │   │       │   ├── params.go
│   │   │       │   ├── setters.go
│   │   │       │   ├── setters_test.go
│   │   │       │   ├── ssz.go
│   │   │       │   ├── state.go
│   │   │       │   ├── test_util.go
│   │   │       │   └── testdata/
│   │   │       │       └── state.ssz_snappy
│   │   │       ├── root_test.go
│   │   │       ├── shuffling/
│   │   │       │   ├── shuffling.go
│   │   │       │   ├── shuffling_test.go
│   │   │       │   └── util.go
│   │   │       ├── ssz.go
│   │   │       ├── ssz_test.go
│   │   │       ├── tests/
│   │   │       │   ├── capella.ssz_snappy
│   │   │       │   └── phase0.ssz_snappy
│   │   │       ├── upgrade.go
│   │   │       ├── upgrade_test.go
│   │   │       ├── util.go
│   │   │       └── utils_test.go
│   │   ├── execution_client/
│   │   │   ├── block_collector/
│   │   │   │   ├── block_collector.go
│   │   │   │   └── block_collector_test.go
│   │   │   ├── execution_client_direct.go
│   │   │   ├── execution_client_rpc.go
│   │   │   ├── execution_engine_mock.go
│   │   │   ├── interface.go
│   │   │   ├── rpc_helper/
│   │   │   │   └── methods.go
│   │   │   └── types.go
│   │   ├── forkchoice/
│   │   │   ├── blob_sidecars.go
│   │   │   ├── checkpoint_state.go
│   │   │   ├── fork_choice_test.go
│   │   │   ├── fork_graph/
│   │   │   │   ├── fork_graph_disk.go
│   │   │   │   ├── fork_graph_disk_fs.go
│   │   │   │   ├── fork_graph_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── participation_indicies_store.go
│   │   │   │   └── test_data/
│   │   │   │       ├── anchor_state.ssz_snappy
│   │   │   │       ├── block_0xbf1a9ba2d349f6b5a5095bff40bd103ae39177e36018fb1f589953b9eeb0ca9d.ssz_snappy
│   │   │   │       └── block_0xe2a37a22d208ebe969c50e9d44bb3f1f63c5404787b9c214a5f2f28fb9835feb.ssz_snappy
│   │   │   ├── forkchoice.go
│   │   │   ├── get_head.go
│   │   │   ├── interface.go
│   │   │   ├── latest_messages_store.go
│   │   │   ├── mock_services/
│   │   │   │   └── forkchoice_mock.go
│   │   │   ├── on_attestation.go
│   │   │   ├── on_attester_slashing.go
│   │   │   ├── on_block.go
│   │   │   ├── on_tick.go
│   │   │   ├── optimistic/
│   │   │   │   ├── optimistic.go
│   │   │   │   ├── optimistic_impl.go
│   │   │   │   └── optimistic_test.go
│   │   │   ├── public_keys_registry/
│   │   │   │   ├── db_public_keys_registry.go
│   │   │   │   ├── in_memory_public_keys_registry.go
│   │   │   │   └── interface.go
│   │   │   ├── test_data/
│   │   │   │   ├── anchor_state.ssz_snappy
│   │   │   │   ├── attestation_0xfb924d35b2888d9cd70e6879c1609e6cad7ea3b028a501967747d96e49068cb6.ssz_snappy
│   │   │   │   ├── block_0x3af8b5b42ca135c75b32abb32b3d71badb73695d3dc638bacfb6c8b7bcbee1a9.ssz_snappy
│   │   │   │   ├── block_0xc2788d6005ee2b92c3df2eff0aeab0374d155fa8ca1f874df305fa376ce334cf.ssz_snappy
│   │   │   │   └── block_0xd4503d46e43df56de4e19acb0f93b3b52087e422aace49a7c3816cf59bafb0ad.ssz_snappy
│   │   │   └── utils.go
│   │   ├── network/
│   │   │   ├── backward_beacon_downloader.go
│   │   │   ├── beacon_downloader.go
│   │   │   ├── blobs.go
│   │   │   ├── gossip_manager.go
│   │   │   ├── services/
│   │   │   │   ├── aggregate_and_proof_service.go
│   │   │   │   ├── aggregate_and_proof_service_test.go
│   │   │   │   ├── attestation_service.go
│   │   │   │   ├── attestation_service_test.go
│   │   │   │   ├── batch_signature_verification.go
│   │   │   │   ├── blob_sidecar_service.go
│   │   │   │   ├── blob_sidecar_service_test.go
│   │   │   │   ├── block_service.go
│   │   │   │   ├── block_service_test.go
│   │   │   │   ├── bls_to_execution_change_service.go
│   │   │   │   ├── bls_to_execution_change_service_test.go
│   │   │   │   ├── constants.go
│   │   │   │   ├── data_column_sidecar_service.go
│   │   │   │   ├── data_column_sidecar_service_test.go
│   │   │   │   ├── global_mock_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── mock_services/
│   │   │   │   │   ├── aggregate_and_proof_service_mock.go
│   │   │   │   │   ├── attestation_service_mock.go
│   │   │   │   │   ├── blob_sidecars_service_mock.go
│   │   │   │   │   ├── block_service_mock.go
│   │   │   │   │   ├── bls_to_execution_change_service_mock.go
│   │   │   │   │   ├── data_column_sidecar_service_mock.go
│   │   │   │   │   ├── proposer_slashing_service_mock.go
│   │   │   │   │   ├── sync_committee_messages_service_mock.go
│   │   │   │   │   ├── sync_contribution_service_mock.go
│   │   │   │   │   └── voluntary_exit_service_mock.go
│   │   │   │   ├── proposer_slashing_service.go
│   │   │   │   ├── proposer_slashing_service_test.go
│   │   │   │   ├── sync_committee_messages_service.go
│   │   │   │   ├── sync_committee_messages_service_test.go
│   │   │   │   ├── sync_contribution_service.go
│   │   │   │   ├── sync_contribution_service_test.go
│   │   │   │   ├── test_data/
│   │   │   │   │   ├── blob_sidecar_service_blob.ssz_snappy
│   │   │   │   │   ├── blob_sidecar_service_block.ssz_snappy
│   │   │   │   │   └── blob_sidecar_service_state.ssz_snappy
│   │   │   │   ├── voluntary_exit_service.go
│   │   │   │   └── voluntary_exit_service_test.go
│   │   │   ├── subnets/
│   │   │   │   └── subnets.go
│   │   │   └── tb_rate_limiter.go
│   │   └── stages/
│   │       ├── chain_tip_sync.go
│   │       ├── cleanup_and_pruning.go
│   │       ├── clstages.go
│   │       ├── forkchoice.go
│   │       ├── forward_sync.go
│   │       └── stage_history_download.go
│   ├── pool/
│   │   ├── operation_pool.go
│   │   ├── operations_pool.go
│   │   └── operations_pool_test.go
│   ├── readme.md
│   ├── rpc/
│   │   ├── interface.go
│   │   ├── peer_selection.go
│   │   └── rpc.go
│   ├── sentinel/
│   │   ├── communication/
│   │   │   ├── ssz_snappy/
│   │   │   │   └── encoding.go
│   │   │   └── topics.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── discovery.go
│   │   ├── gater.go
│   │   ├── gossip.go
│   │   ├── handlers/
│   │   │   ├── blobs.go
│   │   │   ├── blobs_test.go
│   │   │   ├── blocks.go
│   │   │   ├── blocks_by_range_test.go
│   │   │   ├── blocks_by_root_test.go
│   │   │   ├── data_cloumn_sidecar.go
│   │   │   ├── handlers.go
│   │   │   ├── heartbeats.go
│   │   │   ├── heartbeats_test.go
│   │   │   ├── light_client.go
│   │   │   ├── light_client_test.go
│   │   │   ├── test_helpers.go
│   │   │   └── utils_test.go
│   │   ├── handshake/
│   │   │   └── handshake.go
│   │   ├── httpreqresp/
│   │   │   └── server.go
│   │   ├── libp2p_settings.go
│   │   ├── msg_id.go
│   │   ├── msg_id_test.go
│   │   ├── peers/
│   │   │   └── peers_pool.go
│   │   ├── sentinel.go
│   │   ├── sentinel_gossip_test.go
│   │   ├── sentinel_requests_test.go
│   │   ├── service/
│   │   │   ├── notifiers.go
│   │   │   ├── service.go
│   │   │   └── start.go
│   │   ├── utils.go
│   │   └── utils_test.go
│   ├── spectest/
│   │   ├── .gitignore
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── consensus_tests/
│   │   │   ├── appendix.go
│   │   │   ├── bls.go
│   │   │   ├── eip4844_proofs.go
│   │   │   ├── epoch_processing.go
│   │   │   ├── finality.go
│   │   │   ├── fork_choice.go
│   │   │   ├── forks.go
│   │   │   ├── light_client.go
│   │   │   ├── networking.go
│   │   │   ├── operations.go
│   │   │   ├── rewards.go
│   │   │   ├── sanity.go
│   │   │   ├── shuffling.go
│   │   │   ├── ssz_static.go
│   │   │   └── transition.go
│   │   ├── scripts/
│   │   │   └── gen_ssz_static.sh
│   │   ├── tests_test.go
│   │   └── wmake.ps1
│   ├── ssz/
│   │   ├── decode.go
│   │   ├── encode.go
│   │   ├── ssz_test.go
│   │   └── testdata/
│   │       └── serialized.ssz_snappy
│   ├── transition/
│   │   ├── compat.go
│   │   ├── impl/
│   │   │   ├── eth2/
│   │   │   │   ├── block_processing_test.go
│   │   │   │   ├── impl.go
│   │   │   │   ├── operations.go
│   │   │   │   ├── statechange/
│   │   │   │   │   ├── finalization_and_justification.go
│   │   │   │   │   ├── process_effective_balance_update.go
│   │   │   │   │   ├── process_epoch.go
│   │   │   │   │   ├── process_epoch_test.go
│   │   │   │   │   ├── process_historical_roots.go
│   │   │   │   │   ├── process_historical_roots_update.go
│   │   │   │   │   ├── process_inactivity_scores.go
│   │   │   │   │   ├── process_pending_consolidations.go
│   │   │   │   │   ├── process_pending_deposits.go
│   │   │   │   │   ├── process_proposer_lookahead.go
│   │   │   │   │   ├── process_registry_updates.go
│   │   │   │   │   ├── process_rewards_and_penalties.go
│   │   │   │   │   ├── process_slashings.go
│   │   │   │   │   ├── process_sync_committee_update.go
│   │   │   │   │   ├── process_sync_committee_update_test.go
│   │   │   │   │   ├── resets.go
│   │   │   │   │   ├── test_data/
│   │   │   │   │   │   ├── block_processing/
│   │   │   │   │   │   │   ├── capella_block.ssz_snappy
│   │   │   │   │   │   │   └── capella_state.ssz_snappy
│   │   │   │   │   │   └── epoch_processing/
│   │   │   │   │   │       ├── effective_balances_expected.ssz_snappy
│   │   │   │   │   │       ├── effective_balances_test_state.ssz_snappy
│   │   │   │   │   │       ├── eth1_data_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── eth1_data_reset_state_test.ssz_snappy
│   │   │   │   │   │       ├── historical_roots_expected_test.ssz_snappy
│   │   │   │   │   │       ├── historical_roots_state_test.ssz_snappy
│   │   │   │   │   │       ├── inactivity_scores_expected_test.ssz_snappy
│   │   │   │   │   │       ├── inactivity_scores_state_test.ssz_snappy
│   │   │   │   │   │       ├── justification_and_finality_expected_test.ssz_snappy
│   │   │   │   │   │       ├── justification_and_finality_state_test.ssz_snappy
│   │   │   │   │   │       ├── participation_flag_updates_expected_test.ssz_snappy
│   │   │   │   │   │       ├── participation_flag_updates_state_test.ssz_snappy
│   │   │   │   │   │       ├── randao_mixes_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── randao_mixes_reset_state_test.ssz_snappy
│   │   │   │   │   │       ├── registry_updates_test_expected.ssz_snappy
│   │   │   │   │   │       ├── registry_updates_test_state.ssz_snappy
│   │   │   │   │   │       ├── rewards_penalty_test_expected.ssz_snappy
│   │   │   │   │   │       ├── rewards_penalty_test_state.ssz_snappy
│   │   │   │   │   │       ├── slashings_expected_test.ssz_snappy
│   │   │   │   │   │       ├── slashings_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── slashings_reset_state_test.ssz_snappy
│   │   │   │   │   │       └── slashings_state_test.ssz_snappy
│   │   │   │   │   └── utils.go
│   │   │   │   ├── utils.go
│   │   │   │   └── validation.go
│   │   │   └── funcmap/
│   │   │       └── impl.go
│   │   └── machine/
│   │       ├── block.go
│   │       ├── helpers.go
│   │       ├── machine.go
│   │       └── transition.go
│   ├── utils/
│   │   ├── blob.go
│   │   ├── bytes.go
│   │   ├── bytes_test.go
│   │   ├── crypto.go
│   │   ├── crypto_test.go
│   │   ├── eth2shuffle/
│   │   │   ├── shuffle.go
│   │   │   ├── shuffle_bench_test.go
│   │   │   ├── shuffle_test.go
│   │   │   └── spec/
│   │   │       └── tests.csv
│   │   ├── eth_clock/
│   │   │   ├── ethereum_clock.go
│   │   │   ├── ethereum_clock_mock.go
│   │   │   └── ethereum_clock_test.go
│   │   ├── math.go
│   │   ├── math_test.go
│   │   ├── merkle.go
│   │   ├── set.go
│   │   ├── threading/
│   │   │   └── parallel_executor.go
│   │   └── time_test.go
│   └── validator/
│       ├── attestation_producer/
│       │   ├── attestation_producer.go
│       │   ├── attestation_producer_test.go
│       │   └── interface.go
│       ├── committee_subscription/
│       │   ├── committee_subscription.go
│       │   ├── interface.go
│       │   └── mock_services/
│       │       └── committee_subscribe_mock.go
│       ├── sync_contribution_pool/
│       │   ├── interface.go
│       │   ├── mock_services/
│       │   │   └── sync_contribution_pool_mock.go
│       │   ├── sync_contribution_pool.go
│       │   └── sync_contribution_pool_test.go
│       └── validator_params/
│           └── validator_params.go
├── cmd/
│   ├── abigen/
│   │   └── main.go
│   ├── bootnode/
│   │   └── main.go
│   ├── bumper/
│   │   ├── README.md
│   │   ├── cmd/
│   │   │   ├── bump.go
│   │   │   ├── inspect.go
│   │   │   ├── rename.go
│   │   │   ├── root.go
│   │   │   └── selector.go
│   │   ├── internal/
│   │   │   ├── schema/
│   │   │   │   └── schema.go
│   │   │   └── tui/
│   │   │       └── tui.go
│   │   └── main.go
│   ├── capcli/
│   │   ├── .gitignore
│   │   ├── cli.go
│   │   └── main.go
│   ├── caplin/
│   │   ├── caplin1/
│   │   │   ├── option.go
│   │   │   └── run.go
│   │   ├── caplincli/
│   │   │   └── config.go
│   │   ├── caplinflags/
│   │   │   └── flags.go
│   │   └── main.go
│   ├── commitment-prefix/
│   │   ├── main.go
│   │   └── readme.md
│   ├── diag/
│   │   ├── db/
│   │   │   └── db.go
│   │   ├── downloader/
│   │   │   └── diag_downloader.go
│   │   ├── flags/
│   │   │   └── flags.go
│   │   ├── main.go
│   │   ├── readme.md
│   │   ├── stages/
│   │   │   └── stages.go
│   │   ├── sysinfo/
│   │   │   └── sysinfo.go
│   │   ├── ui/
│   │   │   └── ui.go
│   │   └── util/
│   │       └── util.go
│   ├── downloader/
│   │   ├── downloadernat/
│   │   │   └── nat.go
│   │   ├── main.go
│   │   ├── readme.md
│   │   ├── recompress.sh
│   │   └── torrent_hashes_update.sh
│   ├── erigon/
│   │   └── main.go
│   ├── erigoncustom/
│   │   ├── README.md
│   │   └── main.go
│   ├── evm/
│   │   ├── README.md
│   │   ├── compiler.go
│   │   ├── disasm.go
│   │   ├── internal/
│   │   │   ├── compiler/
│   │   │   │   └── compiler.go
│   │   │   └── t8ntool/
│   │   │       ├── execution.go
│   │   │       ├── flags.go
│   │   │       ├── gen_stenv.go
│   │   │       └── transition.go
│   │   ├── main.go
│   │   ├── runner.go
│   │   ├── staterunner.go
│   │   ├── t8n_test.go
│   │   ├── testdata/
│   │   │   ├── 1/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   └── txs.json
│   │   │   ├── 10/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 11/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 12/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 19/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp_arrowglacier.json
│   │   │   │   ├── exp_london.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 2/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 26/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   └── txs.json
│   │   │   ├── 3/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 4/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 5/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 7/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 8/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 9/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── evmrun/
│   │   │   │   ├── 1.out.1.txt
│   │   │   │   ├── 1.out.2.txt
│   │   │   │   ├── 2.out.1.txt
│   │   │   │   ├── 2.out.2.txt
│   │   │   │   ├── 3.out.1.txt
│   │   │   │   ├── 3.out.2.txt
│   │   │   │   ├── 4.out.1.txt
│   │   │   │   └── 4.out.2.txt
│   │   │   └── statetest.json
│   │   └── transition-test.sh
│   ├── hack/
│   │   ├── db/
│   │   │   └── lmdb.go
│   │   ├── flow/
│   │   │   └── flow.go
│   │   ├── hack.go
│   │   ├── scripts/
│   │   │   └── geth_log_parse.py
│   │   └── tool/
│   │       ├── fromdb/
│   │       │   └── tool.go
│   │       └── tool.go
│   ├── integration/
│   │   ├── Readme.md
│   │   ├── commands/
│   │   │   ├── flags.go
│   │   │   ├── idx_optimize.go
│   │   │   ├── idx_optimize2.go
│   │   │   ├── idx_verify.go
│   │   │   ├── refetence_db.go
│   │   │   ├── reset_state.go
│   │   │   ├── root.go
│   │   │   ├── stages.go
│   │   │   ├── state_domains.go
│   │   │   └── state_stages.go
│   │   └── main.go
│   ├── pics/
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   └── Token.abi
│   │   │   ├── gen.go
│   │   │   ├── gen_token.go
│   │   │   └── token.sol
│   │   ├── pics.go
│   │   ├── state.go
│   │   └── visual/
│   │       ├── common.go
│   │       ├── hexary.go
│   │       └── quad.go
│   ├── prometheus/
│   │   ├── .gitignore
│   │   ├── Readme.md
│   │   ├── dashboards/
│   │   │   ├── dashboard.yml
│   │   │   ├── erigon.json
│   │   │   └── erigon_internals.json
│   │   ├── datasources/
│   │   │   └── prometheus.yml
│   │   ├── grafana.ini
│   │   └── prometheus.yml
│   ├── rlpdump/
│   │   ├── main.go
│   │   └── rlpdump_test.go
│   ├── rlpgen/
│   │   ├── handlers.go
│   │   ├── main.go
│   │   ├── matcher.go
│   │   └── testing/
│   │       ├── encdec_test.go
│   │       ├── gen_testingstruct_rlp.go
│   │       └── testing_struct.go
│   ├── rpcdaemon/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── cli/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── httpcfg/
│   │   │   │   └── http_cfg.go
│   │   │   └── rpc_allow_list.go
│   │   ├── graphql/
│   │   │   ├── eip-1767.graphqls.ref
│   │   │   ├── geth-schema.graphqls.ref
│   │   │   ├── gqlgen.yml
│   │   │   ├── graph/
│   │   │   │   ├── generated.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── model/
│   │   │   │   │   ├── models_gen.go
│   │   │   │   │   └── test.go
│   │   │   │   ├── resolver.go
│   │   │   │   ├── schema.graphqls
│   │   │   │   └── schema.resolvers.go
│   │   │   ├── graphql.go
│   │   │   ├── graphql_test.go
│   │   │   ├── query_block.graphql
│   │   │   └── query_chainID.graphql
│   │   ├── health/
│   │   │   ├── check_block.go
│   │   │   ├── check_peers.go
│   │   │   ├── check_synced.go
│   │   │   ├── check_time.go
│   │   │   ├── health.go
│   │   │   ├── health_test.go
│   │   │   ├── interfaces.go
│   │   │   └── parse_api.go
│   │   ├── main.go
│   │   ├── postman/
│   │   │   ├── Overlay_Testing.json
│   │   │   ├── README.md
│   │   │   ├── RPC_Testing.json
│   │   │   └── Trace_Testing.json
│   │   ├── rpcdaemontest/
│   │   │   └── test_util.go
│   │   ├── rpcservices/
│   │   │   ├── eth_backend.go
│   │   │   ├── eth_mining.go
│   │   │   └── eth_txpool.go
│   │   ├── test.http
│   │   └── testdata/
│   │       ├── .gitignore
│   │       ├── sed_file
│   │       └── trace_tests
│   ├── rpctest/
│   │   ├── .gitignore
│   │   ├── Readme.md
│   │   ├── getBlockByNumber.json
│   │   ├── getLogs.json
│   │   ├── heavyStorageRangeAt.json
│   │   ├── lessHeavyStorageRangeAt.json
│   │   ├── main.go
│   │   └── rpctest/
│   │       ├── account_range_verify.go
│   │       ├── bench1.go
│   │       ├── bench2.go
│   │       ├── bench3.go
│   │       ├── bench4.go
│   │       ├── bench5.go
│   │       ├── bench6.go
│   │       ├── bench7.go
│   │       ├── bench9.go
│   │       ├── bench_blockbynumber.go
│   │       ├── bench_debugTrace.go
│   │       ├── bench_ethcall.go
│   │       ├── bench_ethcreateaccesslist.go
│   │       ├── bench_ethgetBalance.go
│   │       ├── bench_ethgetblockbyhash.go
│   │       ├── bench_ethgetblockbynumber.go
│   │       ├── bench_ethgetlogs.go
│   │       ├── bench_gettransactionbyhash.go
│   │       ├── bench_otsgetblockTransactions.go
│   │       ├── bench_overlaygetlogs.go
│   │       ├── bench_traceblock.go
│   │       ├── bench_tracecall.go
│   │       ├── bench_tracecallmany.go
│   │       ├── bench_tracefilter.go
│   │       ├── bench_tracereplaytransaction.go
│   │       ├── bench_tracetransaction.go
│   │       ├── bench_txreceipts.go
│   │       ├── replay.go
│   │       ├── request_generator.go
│   │       ├── request_generator_test.go
│   │       ├── type.go
│   │       └── utils.go
│   ├── scripts/
│   │   └── mirror-datadir.sh
│   ├── sentinel/
│   │   ├── main.go
│   │   ├── sentinelcli/
│   │   │   ├── cliSettings.go
│   │   │   └── flags/
│   │   │       ├── defaultFlags.go
│   │   │       └── flags.go
│   │   └── sentinelflags/
│   │       └── flags.go
│   ├── sentry/
│   │   ├── README.md
│   │   └── main.go
│   ├── silkworm_api/
│   │   └── snapshot_idx.go
│   ├── state/
│   │   ├── commands/
│   │   │   ├── cat_snapshot.go
│   │   │   ├── global_flags_vars.go
│   │   │   ├── opcode_tracer.go
│   │   │   ├── root.go
│   │   │   └── verify_txlookup.go
│   │   ├── main.go
│   │   └── verify/
│   │       └── verify_txlookup.go
│   ├── txpool/
│   │   ├── main.go
│   │   └── readme.md
│   └── utils/
│       ├── cmd.go
│       ├── flags/
│       │   ├── flags.go
│       │   ├── flags_test.go
│       │   └── helpers.go
│       ├── flags.go
│       └── flags_test.go
├── core/
│   ├── .gitignore
│   ├── asm/
│   │   ├── asm.go
│   │   ├── asm_test.go
│   │   ├── compiler.go
│   │   ├── compiler_test.go
│   │   ├── lex_test.go
│   │   └── lexer.go
│   ├── blob_storage/
│   │   ├── blob_db.go
│   │   └── snappy.go
│   ├── block_builder_parameters.go
│   ├── block_validator.go
│   ├── block_validator_test.go
│   ├── blockchain.go
│   ├── blocks.go
│   ├── chain_makers.go
│   ├── data_availability.go
│   ├── debugprint/
│   │   └── receipts.go
│   ├── devnet.go
│   ├── error.go
│   ├── events.go
│   ├── evm.go
│   ├── gaspool.go
│   ├── gdbme/
│   │   ├── gdbme_darwin.go
│   │   ├── gdbme_linux.go
│   │   └── gdbme_windows.go
│   ├── genesiswrite/
│   │   ├── genesis_performance_test.go
│   │   ├── genesis_test.go
│   │   ├── genesis_test.json
│   │   └── genesis_write.go
│   ├── mkalloc.go
│   ├── rlp_test.go
│   ├── skip_analysis.go
│   ├── state/
│   │   ├── access_list.go
│   │   ├── access_list_test.go
│   │   ├── cached_reader.go
│   │   ├── cached_reader3.go
│   │   ├── cached_writer.go
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   ├── Changer.abi
│   │   │   │   ├── Phoenix.abi
│   │   │   │   ├── Poly.abi
│   │   │   │   ├── Revive.abi
│   │   │   │   ├── Revive2.abi
│   │   │   │   └── Selfdestruct.abi
│   │   │   ├── changer.sol
│   │   │   ├── gen.go
│   │   │   ├── gen_changer.go
│   │   │   ├── gen_phoenix.go
│   │   │   ├── gen_poly.go
│   │   │   ├── gen_revive.go
│   │   │   ├── gen_revive2.go
│   │   │   ├── gen_selfdestruct.go
│   │   │   ├── poly.sol
│   │   │   ├── revive.sol
│   │   │   ├── revive2.sol
│   │   │   └── selfdestruct.sol
│   │   ├── database.go
│   │   ├── database_test.go
│   │   ├── dump.go
│   │   ├── history_reader_v3.go
│   │   ├── intra_block_state.go
│   │   ├── intra_block_state_logger_test.go
│   │   ├── intra_block_state_test.go
│   │   ├── journal.go
│   │   ├── recon_state.go
│   │   ├── rw_v3.go
│   │   ├── state_fix.go
│   │   ├── state_object.go
│   │   ├── state_object_test.go
│   │   ├── state_test.go
│   │   ├── state_types.go
│   │   ├── stateless.go
│   │   ├── transient_storage.go
│   │   ├── triedb_state.go
│   │   ├── txtask.go
│   │   ├── versionedio.go
│   │   ├── versionmap.go
│   │   └── versionmap_test.go
│   ├── state_processor.go
│   ├── state_transition.go
│   ├── stateless/
│   │   ├── encoding.go
│   │   ├── witness.go
│   │   └── witness_test.go
│   ├── systemcontracts/
│   │   ├── const.go
│   │   └── upgrade.go
│   ├── test/
│   │   ├── domains_restart_test.go
│   │   ├── marked_forkable_test.go
│   │   └── unmarked_forkable_test.go
│   ├── tracing/
│   │   ├── gen_balance_change_reason_stringer.go
│   │   ├── gen_gas_change_reason_stringer.go
│   │   └── hooks.go
│   └── vm/
│       ├── absint_cfg.go
│       ├── absint_cfg_proof_check.go
│       ├── absint_cfg_proof_gen.go
│       ├── analysis.go
│       ├── analysis_test.go
│       ├── common.go
│       ├── contract.go
│       ├── contracts.go
│       ├── contracts_lightclient.go
│       ├── contracts_lightclient_test.go
│       ├── contracts_test.go
│       ├── doc.go
│       ├── eips.go
│       ├── errors.go
│       ├── evm.go
│       ├── evm_test.go
│       ├── evmtypes/
│       │   ├── evmtypes.go
│       │   └── rules.go
│       ├── export_test.go
│       ├── gas.go
│       ├── gas_table.go
│       ├── gas_table_test.go
│       ├── instructions.go
│       ├── instructions_test.go
│       ├── interface.go
│       ├── interpreter.go
│       ├── jump_table.go
│       ├── lightclient/
│       │   ├── iavl/
│       │   │   ├── .gitignore
│       │   │   ├── CHANGELOG.md
│       │   │   ├── CONTRIBUTING.md
│       │   │   ├── LICENSE
│       │   │   ├── Makefile
│       │   │   ├── PERFORMANCE.md
│       │   │   ├── POEM
│       │   │   ├── README.md
│       │   │   ├── doc.go
│       │   │   ├── key_format.go
│       │   │   ├── key_format_test.go
│       │   │   ├── proof.go
│       │   │   ├── proof_iavl_absence.go
│       │   │   ├── proof_iavl_value.go
│       │   │   ├── proof_path.go
│       │   │   ├── proof_range.go
│       │   │   ├── version.go
│       │   │   └── wire.go
│       │   ├── v1/
│       │   │   ├── ics23_proof.go
│       │   │   ├── multistoreproof.go
│       │   │   ├── rootmultistore.go
│       │   │   ├── types.go
│       │   │   ├── utils.go
│       │   │   └── wire.go
│       │   └── v2/
│       │       ├── lightclient.go
│       │       └── lightclient_test.go
│       ├── memory.go
│       ├── memory_table.go
│       ├── memory_test.go
│       ├── mock_vm.go
│       ├── opcodes.go
│       ├── opcodes_test.go
│       ├── operations_acl.go
│       ├── program/
│       │   ├── program.go
│       │   ├── program_test.go
│       │   └── readme.md
│       ├── runtime/
│       │   ├── doc.go
│       │   ├── env.go
│       │   ├── runtime.go
│       │   ├── runtime_example_test.go
│       │   └── runtime_test.go
│       ├── stack.go
│       ├── stack_table.go
│       └── testdata/
│           ├── precompiles/
│           │   ├── blake2F.json
│           │   ├── blsG1Add-eip.json
│           │   ├── blsG1Add.json
│           │   ├── blsG1Mul-eip.json
│           │   ├── blsG1MultiExp-eip.json
│           │   ├── blsG1MultiExp.json
│           │   ├── blsG2Add-eip.json
│           │   ├── blsG2Add.json
│           │   ├── blsG2Mul-eip.json
│           │   ├── blsG2MultiExp-eip.json
│           │   ├── blsG2MultiExp.json
│           │   ├── blsMapG1-eip.json
│           │   ├── blsMapG1.json
│           │   ├── blsMapG2-eip.json
│           │   ├── blsMapG2.json
│           │   ├── blsPairing-eip.json
│           │   ├── blsPairing.json
│           │   ├── bn254Add.json
│           │   ├── bn254Pairing.json
│           │   ├── bn254ScalarMul.json
│           │   ├── ecRecover.json
│           │   ├── fail-blake2f.json
│           │   ├── fail-blsG1Add-eip.json
│           │   ├── fail-blsG1Add.json
│           │   ├── fail-blsG1Mul-eip.json
│           │   ├── fail-blsG1MultiExp-eip.json
│           │   ├── fail-blsG1MultiExp.json
│           │   ├── fail-blsG2Add-eip.json
│           │   ├── fail-blsG2Add.json
│           │   ├── fail-blsG2Mul-eip.json
│           │   ├── fail-blsG2MultiExp-eip.json
│           │   ├── fail-blsG2MultiExp.json
│           │   ├── fail-blsMapG1-eip.json
│           │   ├── fail-blsMapG1.json
│           │   ├── fail-blsMapG2-eip.json
│           │   ├── fail-blsMapG2.json
│           │   ├── fail-blsPairing-eip.json
│           │   ├── fail-blsPairing.json
│           │   ├── fail-bn254ScalarMul.json
│           │   ├── fail-modexp-eip7823.json
│           │   ├── modexp.json
│           │   ├── modexp_eip2565.json
│           │   ├── modexp_eip7883.json
│           │   ├── p256Verify-EIP-7951.json
│           │   ├── p256Verify.json
│           │   └── pointEvaluation.json
│           ├── testcases_add.json
│           ├── testcases_and.json
│           ├── testcases_byte.json
│           ├── testcases_div.json
│           ├── testcases_eq.json
│           ├── testcases_exp.json
│           ├── testcases_gt.json
│           ├── testcases_lt.json
│           ├── testcases_mod.json
│           ├── testcases_mul.json
│           ├── testcases_or.json
│           ├── testcases_sar.json
│           ├── testcases_sdiv.json
│           ├── testcases_sgt.json
│           ├── testcases_shl.json
│           ├── testcases_shr.json
│           ├── testcases_signext.json
│           ├── testcases_slt.json
│           ├── testcases_smod.json
│           ├── testcases_sub.json
│           └── testcases_xor.json
├── dashboards/
│   ├── erigonQA/
│   │   └── erigonQA.internal.json
│   └── erigon_custom_metrics/
│       └── erigon_custom_metrics.internal.json
├── db/
│   ├── .gitignore
│   ├── compress/
│   │   └── compress.go
│   ├── config3/
│   │   └── config3.go
│   ├── datadir/
│   │   └── dirs.go
│   ├── datastruct/
│   │   ├── existence/
│   │   │   └── existence_filter.go
│   │   └── fusefilter/
│   │       ├── fusefilter_reader.go
│   │       ├── fusefilter_writer.go
│   │       └── fusefilter_writer_test.go
│   ├── downloader/
│   │   ├── README.md
│   │   ├── downloader.go
│   │   ├── downloader_grpc_server.go
│   │   ├── downloader_test.go
│   │   ├── downloadercfg/
│   │   │   ├── dns_cache_resolver.go
│   │   │   ├── downloadercfg.go
│   │   │   ├── iter.go
│   │   │   ├── logger.go
│   │   │   ├── logger_libutp.go
│   │   │   ├── slog-multihandler.go
│   │   │   ├── slogger.go
│   │   │   └── slogger_test.go
│   │   ├── downloadergrpc/
│   │   │   └── client.go
│   │   ├── env.go
│   │   ├── mdbx_piece_completion.go
│   │   ├── mdbx_piece_completion_test.go
│   │   ├── rclone.go
│   │   ├── rclone_test.go
│   │   ├── torrent_files.go
│   │   ├── util.go
│   │   └── webseed.go
│   ├── etl/
│   │   ├── README.md
│   │   ├── buffers.go
│   │   ├── collector.go
│   │   ├── dataprovider.go
│   │   ├── etl.go
│   │   ├── etl_test.go
│   │   ├── heap.go
│   │   └── progress.go
│   ├── kv/
│   │   ├── Readme.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── bitmapdb/
│   │   │   ├── bitmapdb.go
│   │   │   ├── bitmapdb_test.go
│   │   │   ├── fixed_size_bitmaps.go
│   │   │   ├── fixed_size_bitmaps_test.go
│   │   │   └── stream.go
│   │   ├── dbcfg/
│   │   │   └── db_constants.go
│   │   ├── dbutils/
│   │   │   ├── composite_keys.go
│   │   │   └── helper.go
│   │   ├── files.go
│   │   ├── forkable_interface.go
│   │   ├── helpers.go
│   │   ├── kv_interface.go
│   │   ├── kvcache/
│   │   │   ├── cache.go
│   │   │   ├── cache_test.go
│   │   │   └── dummy.go
│   │   ├── kvcfg/
│   │   │   └── accessors_config.go
│   │   ├── mdbx/
│   │   │   ├── kv_abstract_test.go
│   │   │   ├── kv_mdbx.go
│   │   │   ├── kv_mdbx_batch.go
│   │   │   ├── kv_mdbx_temporary.go
│   │   │   ├── kv_mdbx_test.go
│   │   │   ├── kv_migrator_test.go
│   │   │   └── util.go
│   │   ├── membatchwithdb/
│   │   │   ├── memory_mutation.go
│   │   │   ├── memory_mutation_cursor.go
│   │   │   ├── memory_mutation_diff.go
│   │   │   └── memory_mutation_test.go
│   │   ├── memdb/
│   │   │   └── memory_database.go
│   │   ├── order/
│   │   │   └── order.go
│   │   ├── prune/
│   │   │   ├── storage_mode.go
│   │   │   └── storage_mode_test.go
│   │   ├── rawdbv3/
│   │   │   ├── txnum.go
│   │   │   └── txnum_test.go
│   │   ├── remotedb/
│   │   │   └── kv_remote.go
│   │   ├── remotedbserver/
│   │   │   ├── remotedbserver.go
│   │   │   ├── remotedbserver_test.go
│   │   │   └── snapshots_mock.go
│   │   ├── stream/
│   │   │   ├── stream.go
│   │   │   ├── stream_helpers.go
│   │   │   ├── stream_impl.go
│   │   │   ├── stream_interface.go
│   │   │   └── stream_test.go
│   │   ├── table_sizes.go
│   │   ├── tables.go
│   │   ├── temporal/
│   │   │   ├── historyv2/
│   │   │   │   ├── account_changeset.go
│   │   │   │   ├── changeset.go
│   │   │   │   ├── readme.md
│   │   │   │   └── storage_changeset.go
│   │   │   ├── kv_forkables.go
│   │   │   ├── kv_temporal.go
│   │   │   ├── kv_temporal_test.go
│   │   │   └── temporaltest/
│   │   │       └── kv_temporal_testdb.go
│   │   ├── types.go
│   │   └── visible_file.go
│   ├── migrations/
│   │   ├── db_schema_version.go
│   │   ├── migrations.go
│   │   ├── migrations_test.go
│   │   └── reset_stage_txn_lookup.go
│   ├── rawdb/
│   │   ├── accessors_chain.go
│   │   ├── accessors_indexes.go
│   │   ├── accessors_metadata.go
│   │   ├── app_version.go
│   │   ├── blockio/
│   │   │   └── block_writer.go
│   │   ├── rawdbhelpers/
│   │   │   └── rawdbhelpers.go
│   │   ├── rawtemporaldb/
│   │   │   ├── accessors_commitment.go
│   │   │   ├── accessors_receipt.go
│   │   │   └── accessors_receipt_test.go
│   │   ├── state_version.go
│   │   └── utils/
│   │       ├── block_max_heap.go
│   │       └── block_max_heap_test.go
│   ├── recsplit/
│   │   ├── .gitignore
│   │   ├── eliasfano16/
│   │   │   ├── elias_fano.go
│   │   │   ├── elias_fano_fuzz_test.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzDoubleEliasFano/
│   │   │           │   ├── 17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648
│   │   │           │   ├── 1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae
│   │   │           │   ├── 1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9
│   │   │           │   ├── 5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760
│   │   │           │   ├── a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101
│   │   │           │   └── b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e
│   │   │           └── FuzzSingleEliasFano/
│   │   │               ├── 4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73
│   │   │               └── fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7
│   │   ├── eliasfano32/
│   │   │   ├── elias_fano.go
│   │   │   ├── elias_fano_fuzz_test.go
│   │   │   ├── elias_fano_test.go
│   │   │   ├── rebased_elias_fano.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzDoubleEliasFano/
│   │   │           │   ├── 17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648
│   │   │           │   ├── 1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae
│   │   │           │   ├── 1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9
│   │   │           │   ├── 5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760
│   │   │           │   ├── a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101
│   │   │           │   └── b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e
│   │   │           └── FuzzSingleEliasFano/
│   │   │               ├── 4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73
│   │   │               └── fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7
│   │   ├── golomb_rice.go
│   │   ├── index.go
│   │   ├── index_reader.go
│   │   ├── index_test.go
│   │   ├── multiencseq/
│   │   │   ├── sequence_builder.go
│   │   │   ├── sequence_builder_test.go
│   │   │   ├── sequence_reader.go
│   │   │   └── sequence_reader_test.go
│   │   ├── recsplit.go
│   │   ├── recsplit_fuzz_test.go
│   │   ├── recsplit_test.go
│   │   ├── simpleseq/
│   │   │   ├── simple_sequence.go
│   │   │   └── simple_sequence_test.go
│   │   └── testdata/
│   │       └── fuzz/
│   │           └── FuzzRecSplit/
│   │               ├── 0bb14f20865563b5504c292a005834e5e04d6094622a40844dffedb78e560eab
│   │               ├── 13f42b07eca1d28428c3ea36e8ec409764afc9351e3f09e4d91b80626067ea59
│   │               ├── 363f36b97269af400b867a8b03e9eff1eeedb2ceb2dfe516a4cef4a74b309b5e
│   │               ├── 38b6ae40b3e89854b01ee0627bdb24c634f32809c12ddca378e1d61c617d9649
│   │               ├── 61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440
│   │               ├── 87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f
│   │               ├── 8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c
│   │               ├── 93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54
│   │               ├── a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2
│   │               └── dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519
│   ├── seg/
│   │   ├── compress.go
│   │   ├── compress_fuzz_test.go
│   │   ├── compress_test.go
│   │   ├── decompress.go
│   │   ├── decompress_bench_test.go
│   │   ├── decompress_fuzz_test.go
│   │   ├── decompress_test.go
│   │   ├── parallel_compress.go
│   │   ├── patricia/
│   │   │   ├── patricia.go
│   │   │   ├── patricia_fuzz_test.go
│   │   │   ├── patricia_test.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzLongestMatch/
│   │   │           │   ├── 3a5198b65396851670329467bf211856973858cf006ef30532d6871ea859a12a
│   │   │           │   ├── 50e6d6e88241b5d113eeb578e3f53211f9d4c2605391a92b5314b1522ddd6613
│   │   │           │   ├── a6e7cfd5b704609ef4eae0891c8bd6f60cfbe3da1bf98f71ce0c3e107042154e
│   │   │           │   └── eae7318dcf13903566ac6ce58a3188dd26cc3216cdb8a4c398871feb71d79749
│   │   │           └── FuzzPatricia/
│   │   │               ├── 1ac0f70817537550272339767003fa71f827da8ab9b1466b539a97b48b0bec89
│   │   │               ├── 77fc7eba78cd0b1fa2a157aa2cc7e164eed8ca2c71f13d4e103e5a76887a341b
│   │   │               └── 82c51172146d16d565cd6de38398aba6284e6acc17a97edccb0be3a97624f967
│   │   ├── sais/
│   │   │   ├── README.md
│   │   │   ├── sais.c
│   │   │   ├── sais.go
│   │   │   ├── sais.h
│   │   │   ├── sais_test.go
│   │   │   ├── utils.c
│   │   │   └── utils.h
│   │   ├── seg_auto_rw.go
│   │   ├── seg_interface.go
│   │   ├── seg_paged_rw.go
│   │   ├── seg_paged_rw_test.go
│   │   └── silkworm_seg_fuzz_test.go
│   ├── snapcfg/
│   │   ├── util.go
│   │   └── util_test.go
│   ├── snapshotsync/
│   │   ├── caplin_state_snapshots.go
│   │   ├── freezeblocks/
│   │   │   ├── beacon_block_reader.go
│   │   │   ├── block_cache_test.go
│   │   │   ├── block_reader.go
│   │   │   ├── block_snapshots.go
│   │   │   ├── block_sqeeze.go
│   │   │   ├── block_txnum_cache.go
│   │   │   ├── bor_snapshots.go
│   │   │   ├── bsc_snapshots.go
│   │   │   ├── caplin_snapshots.go
│   │   │   └── dump_test.go
│   │   ├── merger.go
│   │   ├── snapshots.go
│   │   ├── snapshots_test.go
│   │   ├── snapshotsync.go
│   │   └── snapshotsync_test.go
│   ├── snaptype/
│   │   ├── caplin_types.go
│   │   ├── caplin_types_test.go
│   │   ├── files.go
│   │   ├── files_test.go
│   │   ├── snaptypes.go
│   │   └── type.go
│   ├── snaptype2/
│   │   ├── block_types.go
│   │   ├── block_types_test.go
│   │   ├── bsc_types.go
│   │   └── headers_freezer.go
│   ├── state/
│   │   ├── aggregator.go
│   │   ├── aggregator2.go
│   │   ├── aggregator_bench_test.go
│   │   ├── aggregator_debug.go
│   │   ├── aggregator_ext_test.go
│   │   ├── aggregator_files.go
│   │   ├── aggregator_fuzz_test.go
│   │   ├── aggregator_test.go
│   │   ├── archive_test.go
│   │   ├── bps_tree.go
│   │   ├── bpstree_bench_test.go
│   │   ├── btree_index.go
│   │   ├── btree_index_test.go
│   │   ├── cache.go
│   │   ├── changeset/
│   │   │   ├── state_changeset.go
│   │   │   └── state_changeset_test.go
│   │   ├── dirty_files.go
│   │   ├── dirty_files_test.go
│   │   ├── domain.go
│   │   ├── domain_committed.go
│   │   ├── domain_shared.go
│   │   ├── domain_shared_bench_test.go
│   │   ├── domain_shared_test.go
│   │   ├── domain_stream.go
│   │   ├── domain_test.go
│   │   ├── emptydir.go
│   │   ├── entity_integrity_check.go
│   │   ├── forkable.go
│   │   ├── forkable_agg.go
│   │   ├── forkable_agg_test.go
│   │   ├── forkable_interfaces.go
│   │   ├── forkable_merge.go
│   │   ├── gc_test.go
│   │   ├── history.go
│   │   ├── history_stream.go
│   │   ├── history_test.go
│   │   ├── integrity.go
│   │   ├── integrity_checker_test.go
│   │   ├── inverted_index.go
│   │   ├── inverted_index_stream.go
│   │   ├── inverted_index_test.go
│   │   ├── merge.go
│   │   ├── merge_test.go
│   │   ├── metrics.go
│   │   ├── proto_forkable.go
│   │   ├── reconst.go
│   │   ├── registry.go
│   │   ├── relations.go
│   │   ├── root_relation.go
│   │   ├── simple_freezer.go
│   │   ├── simple_index_builder.go
│   │   ├── snap_config.go
│   │   ├── snap_repo.go
│   │   ├── snap_repo_config_test.go
│   │   ├── snap_repo_test.go
│   │   ├── snap_schema.go
│   │   ├── snap_schema_test.go
│   │   ├── squeeze.go
│   │   ├── squeeze_test.go
│   │   ├── state_recon.go
│   │   ├── state_util.go
│   │   ├── statecfg/
│   │   │   ├── accessors.go
│   │   │   ├── gen_version.go
│   │   │   ├── gen_version_test.go
│   │   │   ├── state_schema.go
│   │   │   ├── statecfg.go
│   │   │   ├── version_schema.go
│   │   │   ├── version_schema_gen.go
│   │   │   └── versions.yaml
│   │   ├── stats/
│   │   │   └── agg_log_stats.go
│   │   ├── temporal_mem_batch.go
│   │   ├── types.go
│   │   └── utils.go
│   ├── version/
│   │   ├── app.go
│   │   ├── file_version.go
│   │   └── file_version_test.go
│   └── wrap/
│       └── e3_wrapper.go
├── debug.Dockerfile
├── diagnostics/
│   ├── CHANGELOG.md
│   ├── block_body_download_stats.go
│   ├── bodies_info.go
│   ├── bootnodes.go
│   ├── cmd_line.go
│   ├── db.go
│   ├── diaglib/
│   │   ├── block_execution.go
│   │   ├── bodies.go
│   │   ├── client.go
│   │   ├── entities.go
│   │   ├── headers.go
│   │   ├── network.go
│   │   ├── network_test.go
│   │   ├── notifier.go
│   │   ├── provider.go
│   │   ├── provider_test.go
│   │   ├── resources_usage.go
│   │   ├── snapshots.go
│   │   ├── snapshots_download.go
│   │   ├── snapshots_indexing.go
│   │   ├── snapshots_test.go
│   │   ├── speedtest.go
│   │   ├── stages.go
│   │   ├── stages_test.go
│   │   ├── sys_info.go
│   │   ├── txpool.go
│   │   ├── utils.go
│   │   └── utils_test.go
│   ├── diskutils/
│   │   ├── diskutils.go
│   │   ├── diskutils_darwin.go
│   │   ├── diskutils_linux.go
│   │   └── diskutils_windows.go
│   ├── flags.go
│   ├── header_downloader_stats.go
│   ├── headers.go
│   ├── logs.go
│   ├── mem/
│   │   ├── common.go
│   │   ├── mem.go
│   │   └── mem_linux.go
│   ├── mem.go
│   ├── nodeinfo.go
│   ├── peers.go
│   ├── profile.go
│   ├── setup.go
│   ├── snapshot_sync.go
│   ├── sysinfo.go
│   ├── sysutils/
│   │   ├── sysutils.go
│   │   └── sysutils_test.go
│   └── version.go
├── docker-compose.yml
├── docs/
│   ├── DEV_CHAIN.md
│   ├── TESTING.md
│   ├── design/
│   │   ├── logos/
│   │   │   └── Illustrator/
│   │   │       └── logo.ai
│   │   ├── readme.MD
│   │   ├── styleguide/
│   │   │   ├── colors.sketch
│   │   │   └── readme.md
│   │   └── wallpapers/
│   │       └── wallpapers.sketch
│   ├── evm_semantics.md
│   ├── examples/
│   │   └── single-process.md
│   ├── merry-go-round-sync.md
│   ├── mining.md
│   ├── pos_downloader.drawio
│   ├── programmers_guide/
│   │   ├── .gitignore
│   │   ├── db_faq.md
│   │   ├── db_walkthrough.MD
│   │   ├── dupsort.md
│   │   ├── guide.md
│   │   ├── witness_formal_spec.md
│   │   └── witness_format.md
│   └── readthedocs/
│       ├── Makefile
│       ├── make.bat
│       └── source/
│           ├── conf.py
│           ├── etl.rst
│           ├── index.rst
│           ├── installation.rst
│           ├── rpc/
│           │   ├── index.rst
│           │   └── tutorial.rst
│           ├── snappy.rst
│           ├── stagedsync.rst
│           └── types.rst
├── erigon-lib/
│   ├── .gitignore
│   ├── .golangci.yml
│   ├── Makefile
│   ├── bls/
│   │   ├── README.md
│   │   ├── bls_test.go
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   ├── errors.go
│   │   ├── private_key.go
│   │   ├── public_key.go
│   │   └── signature.go
│   ├── common/
│   │   ├── address.go
│   │   ├── assert/
│   │   │   ├── assert_disable.go
│   │   │   └── assert_enable.go
│   │   ├── background/
│   │   │   └── progress.go
│   │   ├── big.go
│   │   ├── bitutil/
│   │   │   ├── bitutil.go
│   │   │   ├── bitutil_test.go
│   │   │   ├── compress.go
│   │   │   ├── compress_test.go
│   │   │   ├── select.go
│   │   │   └── select_test.go
│   │   ├── bytes.go
│   │   ├── bytes4.go
│   │   ├── bytes48.go
│   │   ├── bytes64.go
│   │   ├── bytes96.go
│   │   ├── bytes_test.go
│   │   ├── cbor/
│   │   │   ├── buf_pool.go
│   │   │   └── marshal.go
│   │   ├── chan.go
│   │   ├── cli.go
│   │   ├── cmp/
│   │   │   └── cmp.go
│   │   ├── collections.go
│   │   ├── concurrent/
│   │   │   └── concurrent.go
│   │   ├── copybytes.go
│   │   ├── dbg/
│   │   │   ├── dbg_assert.go
│   │   │   ├── dbg_ctx.go
│   │   │   ├── dbg_env.go
│   │   │   ├── experiments.go
│   │   │   ├── leak_detector.go
│   │   │   ├── log_panic.go
│   │   │   └── pprof_cgo.go
│   │   ├── debug.go
│   │   ├── denomination.go
│   │   ├── dir/
│   │   │   ├── rw_dir.go
│   │   │   ├── rw_dir_generic.go
│   │   │   ├── rw_dir_test.go
│   │   │   └── rw_dir_windows.go
│   │   ├── disk/
│   │   │   ├── common.go
│   │   │   ├── disk.go
│   │   │   ├── disk_darwin.go
│   │   │   └── disk_linux.go
│   │   ├── empty/
│   │   │   └── empty_hashes.go
│   │   ├── errors/
│   │   │   └── errors.go
│   │   ├── fdlimit/
│   │   │   ├── fdlimit_bsd.go
│   │   │   ├── fdlimit_darwin.go
│   │   │   ├── fdlimit_test.go
│   │   │   ├── fdlimit_unix.go
│   │   │   └── fdlimit_windows.go
│   │   ├── format.go
│   │   ├── generics/
│   │   │   └── generics.go
│   │   ├── hash.go
│   │   ├── hasher.go
│   │   ├── hextobytes.go
│   │   ├── hexutil/
│   │   │   ├── bytes.go
│   │   │   ├── errors.go
│   │   │   ├── hexutil.go
│   │   │   ├── hexutil_test.go
│   │   │   ├── json.go
│   │   │   ├── json_test.go
│   │   │   └── text.go
│   │   ├── length/
│   │   │   └── length.go
│   │   ├── math/
│   │   │   ├── big.go
│   │   │   ├── big_test.go
│   │   │   ├── integer.go
│   │   │   └── integer_test.go
│   │   ├── mclock/
│   │   │   ├── mclock.go
│   │   │   ├── mclock.s
│   │   │   ├── simclock.go
│   │   │   └── simclock_test.go
│   │   ├── metrics/
│   │   │   ├── block_metrics.go
│   │   │   └── metrics_enabled.go
│   │   ├── path.go
│   │   ├── pretty.go
│   │   ├── pretty_test.go
│   │   ├── race/
│   │   │   ├── race_disabled.go
│   │   │   └── race_enabled.go
│   │   ├── ring/
│   │   │   └── ring.go
│   │   ├── size.go
│   │   ├── size_test.go
│   │   ├── sleep.go
│   │   ├── sleep_test.go
│   │   ├── sorted.go
│   │   ├── sorted_test.go
│   │   ├── test_utils.go
│   │   ├── tuples.go
│   │   ├── tuples_test.go
│   │   ├── types.go
│   │   ├── types_test.go
│   │   └── u256/
│   │       └── big.go
│   ├── crypto/
│   │   ├── blake2b/
│   │   │   ├── blake2b.go
│   │   │   ├── blake2bAVX2_amd64.go
│   │   │   ├── blake2bAVX2_amd64.s
│   │   │   ├── blake2b_amd64.go
│   │   │   ├── blake2b_amd64.s
│   │   │   ├── blake2b_f_fuzz.go
│   │   │   ├── blake2b_f_test.go
│   │   │   ├── blake2b_generic.go
│   │   │   ├── blake2b_ref.go
│   │   │   ├── blake2b_test.go
│   │   │   ├── blake2x.go
│   │   │   └── register.go
│   │   ├── bn254/
│   │   │   ├── LICENSE
│   │   │   ├── bn254_fast.go
│   │   │   ├── bn254_slow.go
│   │   │   ├── cloudflare/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── bn254.go
│   │   │   │   ├── bn254_test.go
│   │   │   │   ├── constants.go
│   │   │   │   ├── curve.go
│   │   │   │   ├── example_test.go
│   │   │   │   ├── gfp.go
│   │   │   │   ├── gfp12.go
│   │   │   │   ├── gfp2.go
│   │   │   │   ├── gfp6.go
│   │   │   │   ├── gfp_amd64.s
│   │   │   │   ├── gfp_arm64.s
│   │   │   │   ├── gfp_decl.go
│   │   │   │   ├── gfp_generic.go
│   │   │   │   ├── gfp_test.go
│   │   │   │   ├── lattice.go
│   │   │   │   ├── lattice_test.go
│   │   │   │   ├── main_test.go
│   │   │   │   ├── mul_amd64.h
│   │   │   │   ├── mul_arm64.h
│   │   │   │   ├── mul_bmi2_amd64.h
│   │   │   │   ├── optate.go
│   │   │   │   └── twist.go
│   │   │   ├── gnark_bn254.go
│   │   │   └── google/
│   │   │       ├── bn254.go
│   │   │       ├── bn254_test.go
│   │   │       ├── constants.go
│   │   │       ├── curve.go
│   │   │       ├── example_test.go
│   │   │       ├── gfp12.go
│   │   │       ├── gfp2.go
│   │   │       ├── gfp6.go
│   │   │       ├── main_test.go
│   │   │       ├── optate.go
│   │   │       └── twist.go
│   │   ├── crypto.go
│   │   ├── crypto_test.go
│   │   ├── ecies/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README
│   │   │   ├── ecies.go
│   │   │   ├── ecies_test.go
│   │   │   └── params.go
│   │   ├── kzg/
│   │   │   ├── go_eth_kzg.go
│   │   │   └── kzg.go
│   │   ├── secp256r1/
│   │   │   ├── publickey.go
│   │   │   └── verifier.go
│   │   ├── signature_cgo.go
│   │   ├── signature_nocgo.go
│   │   └── signature_test.go
│   ├── estimate/
│   │   ├── esitmated_ram.go
│   │   ├── total_memory.go
│   │   ├── total_memory_cgroups.go
│   │   └── total_memory_cgroups_stub.go
│   ├── event/
│   │   ├── notifier.go
│   │   └── observers.go
│   ├── go.mod
│   ├── go.sum
│   ├── gointerfaces/
│   │   ├── downloaderproto/
│   │   │   ├── downloader.pb.go
│   │   │   ├── downloader_client_mock.go
│   │   │   ├── downloader_grpc.pb.go
│   │   │   └── mockgen.go
│   │   ├── executionproto/
│   │   │   ├── execution.pb.go
│   │   │   └── execution_grpc.pb.go
│   │   ├── grpcutil/
│   │   │   └── utils.go
│   │   ├── remoteproto/
│   │   │   ├── bor.pb.go
│   │   │   ├── bor_grpc.pb.go
│   │   │   ├── ethbackend.pb.go
│   │   │   ├── ethbackend_grpc.pb.go
│   │   │   ├── kv.pb.go
│   │   │   ├── kv_client_mock.go
│   │   │   ├── kv_grpc.pb.go
│   │   │   ├── kv_state_changes_client_mock.go
│   │   │   ├── mockgen.go
│   │   │   ├── sort.go
│   │   │   └── sort_test.go
│   │   ├── sentinelproto/
│   │   │   ├── sentinel.pb.go
│   │   │   └── sentinel_grpc.pb.go
│   │   ├── sentryproto/
│   │   │   ├── mockgen.go
│   │   │   ├── sentry.pb.go
│   │   │   ├── sentry_client_mock.go
│   │   │   ├── sentry_grpc.pb.go
│   │   │   └── sentry_server_mock.go
│   │   ├── txpoolproto/
│   │   │   ├── mining.pb.go
│   │   │   ├── mining_grpc.pb.go
│   │   │   ├── txpool.pb.go
│   │   │   └── txpool_grpc.pb.go
│   │   ├── type_utils.go
│   │   ├── typesproto/
│   │   │   └── types.pb.go
│   │   └── version.go
│   ├── jwt/
│   │   └── http_round_tripper.go
│   ├── log/
│   │   ├── LICENSE
│   │   ├── skip.go
│   │   └── v3/
│   │       ├── bench_test.go
│   │       ├── doc.go
│   │       ├── ext/
│   │       │   ├── ext_test.go
│   │       │   └── handler.go
│   │       ├── format.go
│   │       ├── handler.go
│   │       ├── log_test.go
│   │       ├── logger.go
│   │       ├── logger_test.go
│   │       ├── redact.go
│   │       ├── redact_test.go
│   │       ├── root.go
│   │       ├── syslog.go
│   │       └── term/
│   │           ├── LICENSE
│   │           ├── doc.go
│   │           ├── terminal_appengine.go
│   │           ├── terminal_darwin.go
│   │           ├── terminal_freebsd.go
│   │           ├── terminal_linux.go
│   │           ├── terminal_netbsd.go
│   │           ├── terminal_notwindows.go
│   │           ├── terminal_openbsd.go
│   │           ├── terminal_solaris.go
│   │           └── terminal_windows.go
│   ├── metrics/
│   │   ├── counter.go
│   │   ├── duration_observer.go
│   │   ├── ema.go
│   │   ├── gauge.go
│   │   ├── gaugevec.go
│   │   ├── histogram.go
│   │   ├── parsing.go
│   │   ├── register.go
│   │   ├── set.go
│   │   ├── setup.go
│   │   ├── summary.go
│   │   ├── timer.go
│   │   └── value_getter.go
│   ├── mmap/
│   │   ├── mmap_unix.go
│   │   └── mmap_windows.go
│   ├── rules.go
│   ├── synctest/
│   │   ├── synctest.go
│   │   ├── synctest_go_1_24.go
│   │   └── synctest_go_1_25_and_beyond.go
│   ├── testlog/
│   │   └── testlog.go
│   ├── tools/
│   │   ├── golangci_lint.sh
│   │   └── mod_tidy_check.sh
│   └── types/
│       ├── clonable/
│       │   └── clonable.go
│       └── ssz/
│           ├── errors.go
│           └── ssz.go
├── eth/
│   ├── api.go
│   ├── api_backend.go
│   ├── backend.go
│   ├── backend_test.go
│   ├── bloombits.go
│   ├── consensuschain/
│   │   └── consensus_chain_reader.go
│   ├── ethconfig/
│   │   ├── config.go
│   │   ├── features/
│   │   │   └── sync_features.go
│   │   └── gen_config.go
│   ├── ethconsensusconfig/
│   │   └── config.go
│   ├── ethutils/
│   │   ├── receipt.go
│   │   └── utils.go
│   ├── filters/
│   │   ├── api.go
│   │   ├── api_test.go
│   │   ├── filter_system_test.go
│   │   └── filter_test.go
│   ├── gasprice/
│   │   ├── feehistory.go
│   │   ├── feehistory_test.go
│   │   ├── gasprice.go
│   │   ├── gasprice_test.go
│   │   └── gaspricecfg/
│   │       └── gaspricecfg.go
│   ├── integrity/
│   │   ├── e3_ef_files.go
│   │   ├── e3_history_no_system_txs.go
│   │   ├── integrity_action_type.go
│   │   ├── no_gaps_in_canonical_headers.go
│   │   ├── rcache_no_duplicates.go
│   │   ├── receipts_no_duplicates.go
│   │   ├── receipts_no_duplicates_test.go
│   │   └── snap_blocks_read.go
│   ├── rawdbreset/
│   │   └── reset_stages.go
│   └── tracers/
│       ├── config/
│       │   └── api.go
│       ├── debug/
│       │   └── tracer.go
│       ├── internal/
│       │   └── tracetest/
│       │       ├── calltrace_test.go
│       │       ├── prestate_test.go
│       │       ├── testdata/
│       │       │   ├── call_tracer/
│       │       │   │   ├── call_tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json
│       │       │   │   ├── call_tracer_config_disable_includePrecompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json
│       │       │   │   ├── create.json
│       │       │   │   ├── deep_calls.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── inner_create_oog_outer_throw.json
│       │       │   │   ├── inner_instafail.json
│       │       │   │   ├── inner_revert_reason.json
│       │       │   │   ├── inner_throw_outer_revert.json
│       │       │   │   ├── inner_throw_outer_revert.md
│       │       │   │   ├── oog.json
│       │       │   │   ├── revert.json
│       │       │   │   ├── revert_reason.json
│       │       │   │   ├── selfdestruct.json
│       │       │   │   ├── simple.json
│       │       │   │   ├── simple_onlytop.json
│       │       │   │   └── throw.json
│       │       │   ├── call_tracer_legacy/
│       │       │   │   ├── create.json
│       │       │   │   ├── deep_calls.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── inner_create_oog_outer_throw.json
│       │       │   │   ├── inner_instafail.json
│       │       │   │   ├── inner_throw_outer_revert.json
│       │       │   │   ├── oog.json
│       │       │   │   ├── revert.json
│       │       │   │   ├── revert_reason.json
│       │       │   │   ├── selfdestruct.json
│       │       │   │   ├── simple.json
│       │       │   │   └── throw.json
│       │       │   ├── call_tracer_withLog/
│       │       │   │   ├── calldata.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── multi_contracts.json
│       │       │   │   ├── multilogs.json
│       │       │   │   ├── notopic.json
│       │       │   │   ├── simple.json
│       │       │   │   ├── tx_failed.json
│       │       │   │   ├── tx_partial_failed.json
│       │       │   │   └── with_onlyTopCall.json
│       │       │   ├── prestate_tracer/
│       │       │   │   ├── create_existing_contract.json
│       │       │   │   ├── create_with_value.json
│       │       │   │   ├── disable_code.json
│       │       │   │   ├── disable_code_and_storage.json
│       │       │   │   ├── disable_storage.json
│       │       │   │   └── simple.json
│       │       │   ├── prestate_tracer_legacy/
│       │       │   │   └── simple.json
│       │       │   └── prestate_tracer_with_diff_mode/
│       │       │       ├── create.json
│       │       │       ├── create_disable_code.json
│       │       │       ├── create_disable_storage.json
│       │       │       ├── create_failed.json
│       │       │       ├── create_suicide.json
│       │       │       ├── create_with_value.json
│       │       │       ├── inner_create.json
│       │       │       ├── inner_create_disable_code_and_storage.json
│       │       │       ├── simple.json
│       │       │       ├── simple_disable_code_and_storage.json
│       │       │       └── suicide.json
│       │       ├── testgenerator/
│       │       │   ├── .gitignore
│       │       │   ├── README.md
│       │       │   ├── package.json
│       │       │   ├── src/
│       │       │   │   └── index.ts
│       │       │   └── tsconfig.json
│       │       └── util.go
│       ├── js/
│       │   ├── bigint.go
│       │   ├── goja.go
│       │   ├── internal/
│       │   │   └── tracers/
│       │   │       ├── 4byte_tracer_legacy.js
│       │   │       ├── bigram_tracer.js
│       │   │       ├── call_tracer_legacy.js
│       │   │       ├── evmdis_tracer.js
│       │   │       ├── noop_tracer_legacy.js
│       │   │       ├── opcount_tracer.js
│       │   │       ├── prestate_tracer_legacy.js
│       │   │       ├── tracers.go
│       │   │       ├── trigram_tracer.js
│       │   │       └── unigram_tracer.js
│       │   └── tracer_test.go
│       ├── live/
│       │   ├── printer.go
│       │   └── tracer.go
│       ├── logger/
│       │   ├── access_list_tracer.go
│       │   ├── access_list_tracer_test.go
│       │   ├── gen_structlog.go
│       │   ├── json_stream.go
│       │   ├── logger.go
│       │   ├── logger2_test.go
│       │   ├── logger_json.go
│       │   └── logger_test.go
│       ├── native/
│       │   ├── 4byte.go
│       │   ├── call.go
│       │   ├── gen_account_json.go
│       │   ├── gen_callframe_json.go
│       │   ├── mux.go
│       │   ├── noop.go
│       │   ├── prestate.go
│       │   └── tracer.go
│       ├── tracer.go
│       ├── tracers.go
│       ├── tracers_test.go
│       └── util.go
├── ethstats/
│   └── ethstats.go
├── execution/
│   ├── aa/
│   │   ├── aa_exec.go
│   │   ├── aa_gas.go
│   │   ├── entry_point_tracer.go
│   │   └── validation_rules_tracer.go
│   ├── abi/
│   │   ├── abi.go
│   │   ├── abi_test.go
│   │   ├── argument.go
│   │   ├── bind/
│   │   │   ├── auth.go
│   │   │   ├── backend.go
│   │   │   ├── backends/
│   │   │   │   ├── simulated.go
│   │   │   │   └── simulated_test.go
│   │   │   ├── base.go
│   │   │   ├── base_test.go
│   │   │   ├── bind.go
│   │   │   ├── bind_test.go
│   │   │   ├── template.go
│   │   │   ├── util.go
│   │   │   └── util_test.go
│   │   ├── compiler/
│   │   │   ├── helpers.go
│   │   │   └── solidity.go
│   │   ├── error.go
│   │   ├── event.go
│   │   ├── event_test.go
│   │   ├── method.go
│   │   ├── method_test.go
│   │   ├── pack.go
│   │   ├── pack_test.go
│   │   ├── packing_test.go
│   │   ├── reflect.go
│   │   ├── reflect_test.go
│   │   ├── topics.go
│   │   ├── topics_test.go
│   │   ├── type.go
│   │   ├── type_test.go
│   │   ├── unpack.go
│   │   └── unpack_test.go
│   ├── builder/
│   │   ├── block_builder.go
│   │   ├── buildercfg/
│   │   │   └── mining.go
│   │   ├── latest_block_built.go
│   │   └── latest_block_built_test.go
│   ├── chain/
│   │   ├── aura_config.go
│   │   ├── chain_config.go
│   │   ├── chain_config_test.go
│   │   ├── chain_db.go
│   │   ├── consensus.go
│   │   ├── networkname/
│   │   │   └── network_name.go
│   │   ├── params/
│   │   │   └── protocol.go
│   │   └── spec/
│   │       ├── allocs/
│   │       │   ├── bsc.json
│   │       │   ├── chapel.json
│   │       │   ├── chiado.json
│   │       │   ├── dev.json
│   │       │   ├── gnosis.json
│   │       │   ├── holesky.json
│   │       │   ├── hoodi.json
│   │       │   ├── mainnet.json
│   │       │   └── sepolia.json
│   │       ├── bootnodes.go
│   │       ├── chainspecs/
│   │       │   ├── bsc.json
│   │       │   ├── chapel.json
│   │       │   ├── chiado.json
│   │       │   ├── gnosis.json
│   │       │   ├── holesky.json
│   │       │   ├── hoodi.json
│   │       │   ├── mainnet.json
│   │       │   ├── rialto.json
│   │       │   └── sepolia.json
│   │       ├── clique.go
│   │       ├── config.go
│   │       ├── config_test.go
│   │       ├── genesis.go
│   │       └── network_id.go
│   ├── commitment/
│   │   ├── bin_patricia_hashed.go
│   │   ├── bin_patricia_hashed_test.go
│   │   ├── commitment.go
│   │   ├── commitment_bench_test.go
│   │   ├── commitment_test.go
│   │   ├── commitmentdb/
│   │   │   ├── commitment_context.go
│   │   │   └── commitment_context_test.go
│   │   ├── hex_concurrent_patricia_hashed.go
│   │   ├── hex_patricia_hashed.go
│   │   ├── hex_patricia_hashed_bench_test.go
│   │   ├── hex_patricia_hashed_fuzz_test.go
│   │   ├── hex_patricia_hashed_test.go
│   │   ├── keys_nibbles.go
│   │   ├── metrics.go
│   │   └── patricia_state_mock_test.go
│   ├── consensus/
│   │   ├── aura/
│   │   │   ├── aura.go
│   │   │   ├── aura_test.go
│   │   │   ├── auraabi/
│   │   │   │   ├── abi.go
│   │   │   │   ├── gen_block_reward.go
│   │   │   │   └── gen_validator_set.go
│   │   │   ├── aurainterfaces/
│   │   │   │   └── interface.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── contract_abi.go
│   │   │   ├── contracts/
│   │   │   │   ├── authority_round_random.json
│   │   │   │   ├── block_gas_limit.json
│   │   │   │   ├── block_reward.json
│   │   │   │   ├── certifier.json
│   │   │   │   ├── embed.go
│   │   │   │   ├── registrar.json
│   │   │   │   ├── test_authority_round_random.json
│   │   │   │   ├── test_authority_round_random.sol
│   │   │   │   ├── test_validator_set.json
│   │   │   │   ├── tx_acl.json
│   │   │   │   ├── tx_acl_deprecated.json
│   │   │   │   ├── tx_acl_gas_price.json
│   │   │   │   ├── validator_report.json
│   │   │   │   ├── validator_set.json
│   │   │   │   └── withdrawal.json
│   │   │   ├── empty_step.go
│   │   │   ├── epoch.go
│   │   │   ├── finality_test.go
│   │   │   ├── gaslimit_override.go
│   │   │   ├── rolling_finality.go
│   │   │   ├── types.go
│   │   │   ├── unassemble.go
│   │   │   └── validators.go
│   │   ├── chain_header_reader_mock.go
│   │   ├── chain_reader_mock.go
│   │   ├── clique/
│   │   │   ├── api.go
│   │   │   ├── clique.go
│   │   │   ├── clique_test.go
│   │   │   ├── keys.go
│   │   │   ├── snapshot.go
│   │   │   ├── snapshot_test.go
│   │   │   └── verifier.go
│   │   ├── consensus.go
│   │   ├── errors.go
│   │   ├── ethash/
│   │   │   ├── algorithm.go
│   │   │   ├── algorithm_test.go
│   │   │   ├── api.go
│   │   │   ├── consensus.go
│   │   │   ├── consensus_test.go
│   │   │   ├── difficulty.go
│   │   │   ├── ethash.go
│   │   │   ├── ethash_test.go
│   │   │   ├── ethashcfg/
│   │   │   │   └── ethashcfg.go
│   │   │   ├── fake.go
│   │   │   ├── meter.go
│   │   │   ├── sealer.go
│   │   │   └── sealer_test.go
│   │   ├── merge/
│   │   │   ├── merge.go
│   │   │   └── merge_test.go
│   │   ├── misc/
│   │   │   ├── dao.go
│   │   │   ├── dao_params.go
│   │   │   ├── eip1559.go
│   │   │   ├── eip1559_test.go
│   │   │   ├── eip2935.go
│   │   │   ├── eip4788.go
│   │   │   ├── eip4844.go
│   │   │   ├── eip4844_test.go
│   │   │   ├── eip6110.go
│   │   │   ├── eip7002.go
│   │   │   ├── eip7251.go
│   │   │   ├── gaslimit.go
│   │   │   └── pos.go
│   │   └── parlia/
│   │       ├── abi.go
│   │       ├── api.go
│   │       ├── bohrFork.go
│   │       ├── feynmanfork.go
│   │       ├── feynmanfork_test.go
│   │       ├── finality/
│   │       │   └── finalization.go
│   │       ├── lubanFork.go
│   │       ├── parlia.go
│   │       ├── snapshot.go
│   │       ├── snapshot_test.go
│   │       └── util.go
│   ├── dataflow/
│   │   └── states.go
│   ├── engineapi/
│   │   ├── engine_api_jsonrpc_client.go
│   │   ├── engine_api_methods.go
│   │   ├── engine_block_downloader/
│   │   │   ├── block_downloader.go
│   │   │   ├── body.go
│   │   │   ├── core.go
│   │   │   ├── download_request.go
│   │   │   └── header_reader.go
│   │   ├── engine_helpers/
│   │   │   ├── constants.go
│   │   │   └── fork_validator.go
│   │   ├── engine_logs_spammer/
│   │   │   └── engine_log_spammer.go
│   │   ├── engine_server.go
│   │   ├── engine_server_test.go
│   │   ├── engine_types/
│   │   │   ├── jsonrpc.go
│   │   │   └── status.go
│   │   └── interface.go
│   ├── eth1/
│   │   ├── block_building.go
│   │   ├── eth1_chain_reader/
│   │   │   └── chain_reader.go
│   │   ├── eth1_utils/
│   │   │   ├── grpc.go
│   │   │   └── grpc_test.go
│   │   ├── ethereum_execution.go
│   │   ├── forkchoice.go
│   │   ├── getters.go
│   │   ├── inserters.go
│   │   └── metrics.go
│   ├── exec3/
│   │   ├── blocks_read_ahead.go
│   │   ├── calltracer/
│   │   │   └── calltracer_v3.go
│   │   ├── historical_trace_worker.go
│   │   ├── state.go
│   │   └── trace_worker.go
│   ├── fixedgas/
│   │   ├── intrinsic_gas.go
│   │   └── intrinsic_gas_test.go
│   ├── p2p/
│   │   ├── bbd.go
│   │   ├── bbd_options.go
│   │   ├── bbd_result_feed.go
│   │   ├── fetcher.go
│   │   ├── fetcher_base.go
│   │   ├── fetcher_base_test.go
│   │   ├── fetcher_config.go
│   │   ├── fetcher_errors.go
│   │   ├── fetcher_penalizing.go
│   │   ├── fetcher_penalizing_test.go
│   │   ├── fetcher_tracking.go
│   │   ├── fetcher_tracking_test.go
│   │   ├── message_listener.go
│   │   ├── message_listener_test.go
│   │   ├── message_sender.go
│   │   ├── message_sender_test.go
│   │   ├── peer_event_registrar.go
│   │   ├── peer_event_registrar_mock.go
│   │   ├── peer_id.go
│   │   ├── peer_penalizer.go
│   │   ├── peer_shuffle.go
│   │   ├── peer_sync_progress.go
│   │   ├── peer_sync_progress_test.go
│   │   ├── peer_tracker.go
│   │   ├── peer_tracker_option.go
│   │   └── peer_tracker_test.go
│   ├── rlp/
│   │   ├── commitment.go
│   │   ├── commitment_test.go
│   │   ├── decode.go
│   │   ├── decode_tail_test.go
│   │   ├── decode_test.go
│   │   ├── doc.go
│   │   ├── encbuffer.go
│   │   ├── encode.go
│   │   ├── encode_rlp2.go
│   │   ├── encode_test.go
│   │   ├── encoder_example_test.go
│   │   ├── internal/
│   │   │   └── rlpstruct/
│   │   │       └── rlpstruct.go
│   │   ├── iterator.go
│   │   ├── iterator_test.go
│   │   ├── parse.go
│   │   ├── parse_test.go
│   │   ├── raw.go
│   │   ├── raw_test.go
│   │   └── typecache.go
│   ├── stagedsync/
│   │   ├── README.md
│   │   ├── chain_reader.go
│   │   ├── default_stages.go
│   │   ├── exec3.go
│   │   ├── exec3_parallel.go
│   │   ├── exec3_serial.go
│   │   ├── exec3_status.go
│   │   ├── metrics.go
│   │   ├── stage.go
│   │   ├── stage_blockhashes.go
│   │   ├── stage_bodies.go
│   │   ├── stage_bodies_test.go
│   │   ├── stage_commit_rebuild.go
│   │   ├── stage_custom_trace.go
│   │   ├── stage_custom_trace_test.go
│   │   ├── stage_execute.go
│   │   ├── stage_finish.go
│   │   ├── stage_headers.go
│   │   ├── stage_mining_create_block.go
│   │   ├── stage_mining_exec.go
│   │   ├── stage_mining_finish.go
│   │   ├── stage_postexec.go
│   │   ├── stage_senders.go
│   │   ├── stage_senders_test.go
│   │   ├── stage_snapshots.go
│   │   ├── stage_txlookup.go
│   │   ├── stage_witness.go
│   │   ├── stage_witness_processing.go
│   │   ├── stagebuilder.go
│   │   ├── stages/
│   │   │   ├── metrics.go
│   │   │   ├── stages.go
│   │   │   └── sync_mode.go
│   │   ├── sync.go
│   │   ├── sync_test.go
│   │   ├── testutil.go
│   │   └── types.go
│   ├── stages/
│   │   ├── blockchain_test.go
│   │   ├── bodydownload/
│   │   │   ├── body_algos.go
│   │   │   ├── body_data_struct.go
│   │   │   ├── body_test.go
│   │   │   └── prefetched_blocks.go
│   │   ├── chain_makers_test.go
│   │   ├── genesis_test.go
│   │   ├── headerdownload/
│   │   │   ├── header_algo_test.go
│   │   │   ├── header_algos.go
│   │   │   └── header_data_struct.go
│   │   ├── mock/
│   │   │   ├── accessors_chain_test.go
│   │   │   ├── accessors_indexes_test.go
│   │   │   ├── mock_sentry.go
│   │   │   └── sentry_mock_test.go
│   │   └── stageloop.go
│   ├── tests/
│   │   ├── block_test.go
│   │   ├── chaos_monkey/
│   │   │   └── chaos_monkey.go
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   ├── selfDestructor.abi
│   │   │   │   └── testcontract.abi
│   │   │   ├── gen.go
│   │   │   ├── gen_selfDestructor.go
│   │   │   ├── gen_testcontract.go
│   │   │   ├── selfDestructor.sol
│   │   │   └── testcontract.sol
│   │   ├── difficulty_test.go
│   │   ├── engine_api_reorg_test.go
│   │   ├── engine_api_tester.go
│   │   ├── init_test.go
│   │   ├── mock_cl.go
│   │   ├── rlp_test.go
│   │   ├── state_test.go
│   │   ├── statedb_chain_test.go
│   │   ├── statedb_insert_chain_transaction_test.go
│   │   ├── test-corners/
│   │   │   └── CallNonExistingAccount.json
│   │   ├── testforks/
│   │   │   └── forks.go
│   │   ├── testutil/
│   │   │   ├── block_test_util.go
│   │   │   ├── difficulty_test_util.go
│   │   │   ├── free_port.go
│   │   │   ├── gen_btheader.go
│   │   │   ├── gen_difficultytest.go
│   │   │   ├── gen_stenv.go
│   │   │   ├── rlp_test_util.go
│   │   │   ├── state_test_util.go
│   │   │   └── transaction_test_util.go
│   │   ├── transaction_test.go
│   │   └── txn_inclusion_verifier.go
│   ├── trie/
│   │   ├── .gitignore
│   │   ├── account_node_test.go
│   │   ├── debug.go
│   │   ├── delete_subrtee_test.go
│   │   ├── encoding.go
│   │   ├── encoding_test.go
│   │   ├── errors.go
│   │   ├── flatdb_sub_trie_loader_test.go
│   │   ├── gen_struct_step.go
│   │   ├── hack.go
│   │   ├── hashbuilder.go
│   │   ├── hasher.go
│   │   ├── hasher_test.go
│   │   ├── intermediate_hashes_test.go
│   │   ├── node.go
│   │   ├── proof.go
│   │   ├── retain_list.go
│   │   ├── retain_list_builder.go
│   │   ├── retain_list_test.go
│   │   ├── stream.go
│   │   ├── stream_test.go
│   │   ├── structural_test.go
│   │   ├── sub_trie_loader.go
│   │   ├── trie.go
│   │   ├── trie_from_witness.go
│   │   ├── trie_test.go
│   │   ├── trie_witness.go
│   │   ├── utils.go
│   │   ├── witness.go
│   │   ├── witness_builder.go
│   │   ├── witness_builder_test.go
│   │   ├── witness_marshalling.go
│   │   ├── witness_operators.go
│   │   ├── witness_operators_test.go
│   │   ├── witness_stats.go
│   │   └── witness_test.go
│   └── types/
│       ├── aa.abi
│       ├── aa_abi.go
│       ├── aa_transaction.go
│       ├── access_list_tx.go
│       ├── accounts/
│       │   ├── account.go
│       │   ├── account_benchmark_test.go
│       │   ├── account_proof.go
│       │   └── account_test.go
│       ├── authorization.go
│       ├── authorization_test.go
│       ├── blacklist.go
│       ├── blob_sidecars.go
│       ├── blob_sidecars_test.go
│       ├── blob_test_util.go
│       ├── blob_tx.go
│       ├── blob_tx_wrapper.go
│       ├── block.go
│       ├── block_test.go
│       ├── bloom9.go
│       ├── bloom9_test.go
│       ├── create_address.go
│       ├── create_address_test.go
│       ├── dynamic_fee_tx.go
│       ├── eip7685_requests.go
│       ├── encdec_test.go
│       ├── gen_aura_seal.go
│       ├── gen_erigon_log_json.go
│       ├── gen_genesis.go
│       ├── gen_genesis_account.go
│       ├── gen_header_json.go
│       ├── gen_log_json.go
│       ├── gen_receipt_json.go
│       ├── gen_withdrawal_json.go
│       ├── genesis.go
│       ├── hashing.go
│       ├── hashing_test.go
│       ├── legacy_tx.go
│       ├── log.go
│       ├── log_test.go
│       ├── receipt.go
│       ├── receipt_test.go
│       ├── requests_test.go
│       ├── set_code_tx.go
│       ├── state_data.go
│       ├── testdata/
│       │   └── testdata.go
│       ├── transaction.go
│       ├── transaction_marshalling.go
│       ├── transaction_signing.go
│       ├── transaction_signing_test.go
│       ├── transaction_test.go
│       ├── vote.go
│       ├── withdrawal.go
│       ├── withdrawal_test.go
│       └── witness/
│           └── types.go
├── funding.json
├── go.mod
├── go.sum
├── hooks/
│   ├── build
│   └── post_checkout
├── interfaces.go
├── internal/
│   └── reexec/
│       ├── reexec.go
│       ├── self_linux.go
│       └── self_others.go
├── k8s/
│   ├── base/
│   │   ├── kustomization.yaml
│   │   ├── services/
│   │   │   ├── eth66-peering-tcp.yaml
│   │   │   ├── eth66-peering-udp.yaml
│   │   │   ├── http.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── metrics.yaml
│   │   │   ├── snap-sync-tcp.yaml
│   │   │   └── snap-sync-udp.yaml
│   │   └── statefulset.yaml
│   └── google-kubernetes-engine/
│       ├── kustomization.yaml
│       ├── podmonitoring.yaml
│       ├── statefulset-erigon-patch.yaml
│       └── tls/
│           ├── certificate.yaml
│           ├── ingress.yaml
│           └── kustomization.yaml
├── nightly.sh
├── node/
│   ├── direct/
│   │   ├── downloader_client.go
│   │   ├── eth_backend_client.go
│   │   ├── execution_client.go
│   │   ├── mining_client.go
│   │   ├── sentinel_client.go
│   │   ├── sentry_client.go
│   │   ├── sentry_client_mock.go
│   │   ├── state_diff_client.go
│   │   └── txpool_client.go
│   ├── doc.go
│   ├── endpoints.go
│   ├── errors.go
│   ├── lifecycle.go
│   ├── node.go
│   ├── node_example_test.go
│   ├── node_test.go
│   ├── nodecfg/
│   │   ├── config.go
│   │   ├── config_test.go
│   │   └── defaults.go
│   ├── paths/
│   │   └── paths.go
│   ├── rpcstack.go
│   ├── rpcstack_test.go
│   └── utils_test.go
├── oss-fuzz.sh
├── p2p/
│   ├── .gitignore
│   ├── dial.go
│   ├── dial_integration_test.go
│   ├── dial_test.go
│   ├── discover/
│   │   ├── common.go
│   │   ├── lookup.go
│   │   ├── lookup_util_test.go
│   │   ├── node.go
│   │   ├── ntp.go
│   │   ├── table.go
│   │   ├── table_integration_test.go
│   │   ├── table_test.go
│   │   ├── table_util_test.go
│   │   ├── v4_lookup_test.go
│   │   ├── v4_udp.go
│   │   ├── v4_udp_test.go
│   │   ├── v4wire/
│   │   │   ├── v4wire.go
│   │   │   └── v4wire_test.go
│   │   ├── v5_lookup_test.go
│   │   ├── v5_udp.go
│   │   ├── v5_udp_integration_test.go
│   │   ├── v5_udp_test.go
│   │   └── v5wire/
│   │       ├── crypto.go
│   │       ├── crypto_test.go
│   │       ├── encoding.go
│   │       ├── encoding_test.go
│   │       ├── msg.go
│   │       ├── session.go
│   │       └── testdata/
│   │           ├── v5.1-ping-handshake-enr.txt
│   │           ├── v5.1-ping-handshake.txt
│   │           ├── v5.1-ping-message.txt
│   │           └── v5.1-whoareyou.txt
│   ├── dnsdisc/
│   │   ├── client.go
│   │   ├── client_test.go
│   │   ├── doc.go
│   │   ├── error.go
│   │   ├── sync.go
│   │   ├── sync_test.go
│   │   ├── tree.go
│   │   └── tree_test.go
│   ├── enode/
│   │   ├── idscheme.go
│   │   ├── idscheme_test.go
│   │   ├── iter.go
│   │   ├── iter_integration_test.go
│   │   ├── iter_test.go
│   │   ├── localnode.go
│   │   ├── localnode_test.go
│   │   ├── node.go
│   │   ├── node_test.go
│   │   ├── nodedb.go
│   │   ├── nodedb_test.go
│   │   ├── urlv4.go
│   │   └── urlv4_test.go
│   ├── enr/
│   │   ├── enr.go
│   │   ├── enr_test.go
│   │   └── entries.go
│   ├── event/
│   │   ├── example_feed_test.go
│   │   ├── example_scope_test.go
│   │   ├── example_subscription_test.go
│   │   ├── feed.go
│   │   ├── feed_test.go
│   │   ├── subscription.go
│   │   └── subscription_test.go
│   ├── forkid/
│   │   ├── forkid.go
│   │   └── forkid_test.go
│   ├── message.go
│   ├── message_test.go
│   ├── metrics.go
│   ├── nat/
│   │   ├── nat.go
│   │   ├── nat_stun.go
│   │   ├── nat_test.go
│   │   ├── natpmp.go
│   │   ├── natupnp.go
│   │   └── natupnp_test.go
│   ├── netutil/
│   │   ├── addrutil.go
│   │   ├── error.go
│   │   ├── error_test.go
│   │   ├── iptrack.go
│   │   ├── iptrack_test.go
│   │   ├── net.go
│   │   ├── net_test.go
│   │   ├── toobig_notwindows.go
│   │   └── toobig_windows.go
│   ├── node_key_config.go
│   ├── peer.go
│   ├── peer_error.go
│   ├── peer_test.go
│   ├── pipes/
│   │   └── pipes.go
│   ├── protocol.go
│   ├── protocols/
│   │   ├── eth/
│   │   │   ├── discovery.go
│   │   │   ├── handler.go
│   │   │   ├── handlers.go
│   │   │   ├── protocol.go
│   │   │   └── protocol_test.go
│   │   └── wit/
│   │       ├── peer.go
│   │       └── protocol.go
│   ├── rlpx/
│   │   ├── buffer.go
│   │   ├── buffer_test.go
│   │   ├── rlpx.go
│   │   └── rlpx_test.go
│   ├── sentry/
│   │   ├── eth_handshake.go
│   │   ├── eth_handshake_test.go
│   │   ├── libsentry/
│   │   │   ├── loop.go
│   │   │   ├── protocol.go
│   │   │   ├── sentrymultiplexer.go
│   │   │   ├── util.go
│   │   │   └── util_test.go
│   │   ├── sentry_grpc_server.go
│   │   ├── sentry_grpc_server_test.go
│   │   ├── sentry_multi_client/
│   │   │   ├── broadcast.go
│   │   │   ├── sentry_api.go
│   │   │   ├── sentry_multi_client.go
│   │   │   ├── sentry_multi_client_test.go
│   │   │   └── witness_test.go
│   │   ├── sentrymultiplexer_test.go
│   │   └── status_data_provider.go
│   ├── server.go
│   ├── server_test.go
│   ├── transport.go
│   ├── transport_test.go
│   ├── util.go
│   └── util_test.go
├── polygon/
│   ├── bor/
│   │   ├── bor.go
│   │   ├── bor_internal_test.go
│   │   ├── bor_test.go
│   │   ├── borabi/
│   │   │   └── abi.go
│   │   ├── borcfg/
│   │   │   ├── bor_config.go
│   │   │   └── bor_config_test.go
│   │   ├── bordb/
│   │   │   └── prune.go
│   │   ├── bridge_reader_mock.go
│   │   ├── errors.go
│   │   ├── fake.go
│   │   ├── fee_log.go
│   │   ├── merkle.go
│   │   ├── spanner.go
│   │   ├── spanner_mock.go
│   │   ├── spanner_test_validators.go
│   │   ├── state_receiver.go
│   │   ├── state_receiver_mock.go
│   │   ├── statefull/
│   │   │   └── processor.go
│   │   └── types/
│   │       └── bor_receipt.go
│   ├── bridge/
│   │   ├── client.go
│   │   ├── client_http.go
│   │   ├── client_http_test.go
│   │   ├── client_idle.go
│   │   ├── client_mock.go
│   │   ├── event_fetch_test.go
│   │   ├── event_record.go
│   │   ├── log_prefix.go
│   │   ├── mdbx_store.go
│   │   ├── processed_block_info.go
│   │   ├── reader.go
│   │   ├── server.go
│   │   ├── service.go
│   │   ├── service_test.go
│   │   ├── snapshot_integrity.go
│   │   ├── snapshot_store.go
│   │   ├── snapshot_store_test.go
│   │   └── store.go
│   ├── chain/
│   │   ├── allocs/
│   │   │   ├── amoy.json
│   │   │   ├── bor_devnet.json
│   │   │   ├── bor_mainnet.json
│   │   │   └── mumbai.json
│   │   ├── bootnodes.go
│   │   ├── chainspecs/
│   │   │   ├── amoy.json
│   │   │   ├── bor-devnet.json
│   │   │   ├── bor-mainnet.json
│   │   │   └── mumbai.json
│   │   ├── config.go
│   │   ├── config_test.go
│   │   └── genesis.go
│   ├── heimdall/
│   │   ├── checkpoint.go
│   │   ├── checkpoint_test.go
│   │   ├── client.go
│   │   ├── client_http.go
│   │   ├── client_http_test.go
│   │   ├── client_idle.go
│   │   ├── client_mock.go
│   │   ├── closed_range.go
│   │   ├── cmp_block_range.go
│   │   ├── entity.go
│   │   ├── entity_fetcher.go
│   │   ├── entity_fetcher_mock.go
│   │   ├── entity_fetcher_test.go
│   │   ├── entity_store.go
│   │   ├── entity_store_mock.go
│   │   ├── heimdalltest/
│   │   │   └── test_json_marshal.go
│   │   ├── log_prefix.go
│   │   ├── milestone.go
│   │   ├── milestone_test.go
│   │   ├── poshttp/
│   │   │   ├── heimdall_client_mock.go
│   │   │   ├── http.go
│   │   │   ├── http_request_handler.go
│   │   │   ├── http_request_handler_mock.go
│   │   │   ├── metrics.go
│   │   │   ├── version_monitor.go
│   │   │   └── version_monitor_test.go
│   │   ├── range_index.go
│   │   ├── range_index_test.go
│   │   ├── reader.go
│   │   ├── scraper.go
│   │   ├── scraper_test.go
│   │   ├── server.go
│   │   ├── service.go
│   │   ├── service_observer_options.go
│   │   ├── service_store.go
│   │   ├── service_test.go
│   │   ├── snapshot_integrity.go
│   │   ├── snapshot_store.go
│   │   ├── snapshot_store_test.go
│   │   ├── snapshots.go
│   │   ├── span.go
│   │   ├── span_block_producer_selection.go
│   │   ├── span_block_producers_tracker.go
│   │   ├── span_range_index.go
│   │   ├── span_range_index_test.go
│   │   ├── span_test.go
│   │   ├── status.go
│   │   ├── testdata/
│   │   │   ├── amoy/
│   │   │   │   ├── checkpoints/
│   │   │   │   │   ├── checkpoint_1.json
│   │   │   │   │   ├── checkpoint_10.json
│   │   │   │   │   ├── checkpoint_100.json
│   │   │   │   │   ├── checkpoint_101.json
│   │   │   │   │   ├── checkpoint_102.json
│   │   │   │   │   ├── checkpoint_103.json
│   │   │   │   │   ├── checkpoint_104.json
│   │   │   │   │   ├── checkpoint_105.json
│   │   │   │   │   ├── checkpoint_106.json
│   │   │   │   │   ├── checkpoint_107.json
│   │   │   │   │   ├── checkpoint_108.json
│   │   │   │   │   ├── checkpoint_109.json
│   │   │   │   │   ├── checkpoint_11.json
│   │   │   │   │   ├── checkpoint_110.json
│   │   │   │   │   ├── checkpoint_111.json
│   │   │   │   │   ├── checkpoint_112.json
│   │   │   │   │   ├── checkpoint_113.json
│   │   │   │   │   ├── checkpoint_114.json
│   │   │   │   │   ├── checkpoint_115.json
│   │   │   │   │   ├── checkpoint_116.json
│   │   │   │   │   ├── checkpoint_117.json
│   │   │   │   │   ├── checkpoint_118.json
│   │   │   │   │   ├── checkpoint_119.json
│   │   │   │   │   ├── checkpoint_12.json
│   │   │   │   │   ├── checkpoint_120.json
│   │   │   │   │   ├── checkpoint_121.json
│   │   │   │   │   ├── checkpoint_122.json
│   │   │   │   │   ├── checkpoint_123.json
│   │   │   │   │   ├── checkpoint_124.json
│   │   │   │   │   ├── checkpoint_125.json
│   │   │   │   │   ├── checkpoint_126.json
│   │   │   │   │   ├── checkpoint_127.json
│   │   │   │   │   ├── checkpoint_128.json
│   │   │   │   │   ├── checkpoint_129.json
│   │   │   │   │   ├── checkpoint_13.json
│   │   │   │   │   ├── checkpoint_130.json
│   │   │   │   │   ├── checkpoint_131.json
│   │   │   │   │   ├── checkpoint_132.json
│   │   │   │   │   ├── checkpoint_133.json
│   │   │   │   │   ├── checkpoint_134.json
│   │   │   │   │   ├── checkpoint_135.json
│   │   │   │   │   ├── checkpoint_136.json
│   │   │   │   │   ├── checkpoint_137.json
│   │   │   │   │   ├── checkpoint_138.json
│   │   │   │   │   ├── checkpoint_139.json
│   │   │   │   │   ├── checkpoint_14.json
│   │   │   │   │   ├── checkpoint_140.json
│   │   │   │   │   ├── checkpoint_141.json
│   │   │   │   │   ├── checkpoint_142.json
│   │   │   │   │   ├── checkpoint_143.json
│   │   │   │   │   ├── checkpoint_144.json
│   │   │   │   │   ├── checkpoint_145.json
│   │   │   │   │   ├── checkpoint_146.json
│   │   │   │   │   ├── checkpoint_147.json
│   │   │   │   │   ├── checkpoint_148.json
│   │   │   │   │   ├── checkpoint_149.json
│   │   │   │   │   ├── checkpoint_15.json
│   │   │   │   │   ├── checkpoint_150.json
│   │   │   │   │   ├── checkpoint_16.json
│   │   │   │   │   ├── checkpoint_17.json
│   │   │   │   │   ├── checkpoint_18.json
│   │   │   │   │   ├── checkpoint_19.json
│   │   │   │   │   ├── checkpoint_2.json
│   │   │   │   │   ├── checkpoint_20.json
│   │   │   │   │   ├── checkpoint_21.json
│   │   │   │   │   ├── checkpoint_22.json
│   │   │   │   │   ├── checkpoint_23.json
│   │   │   │   │   ├── checkpoint_24.json
│   │   │   │   │   ├── checkpoint_25.json
│   │   │   │   │   ├── checkpoint_26.json
│   │   │   │   │   ├── checkpoint_27.json
│   │   │   │   │   ├── checkpoint_28.json
│   │   │   │   │   ├── checkpoint_29.json
│   │   │   │   │   ├── checkpoint_3.json
│   │   │   │   │   ├── checkpoint_30.json
│   │   │   │   │   ├── checkpoint_31.json
│   │   │   │   │   ├── checkpoint_32.json
│   │   │   │   │   ├── checkpoint_33.json
│   │   │   │   │   ├── checkpoint_34.json
│   │   │   │   │   ├── checkpoint_35.json
│   │   │   │   │   ├── checkpoint_36.json
│   │   │   │   │   ├── checkpoint_37.json
│   │   │   │   │   ├── checkpoint_38.json
│   │   │   │   │   ├── checkpoint_39.json
│   │   │   │   │   ├── checkpoint_4.json
│   │   │   │   │   ├── checkpoint_40.json
│   │   │   │   │   ├── checkpoint_41.json
│   │   │   │   │   ├── checkpoint_42.json
│   │   │   │   │   ├── checkpoint_43.json
│   │   │   │   │   ├── checkpoint_44.json
│   │   │   │   │   ├── checkpoint_45.json
│   │   │   │   │   ├── checkpoint_46.json
│   │   │   │   │   ├── checkpoint_47.json
│   │   │   │   │   ├── checkpoint_48.json
│   │   │   │   │   ├── checkpoint_49.json
│   │   │   │   │   ├── checkpoint_5.json
│   │   │   │   │   ├── checkpoint_50.json
│   │   │   │   │   ├── checkpoint_51.json
│   │   │   │   │   ├── checkpoint_52.json
│   │   │   │   │   ├── checkpoint_53.json
│   │   │   │   │   ├── checkpoint_54.json
│   │   │   │   │   ├── checkpoint_55.json
│   │   │   │   │   ├── checkpoint_56.json
│   │   │   │   │   ├── checkpoint_57.json
│   │   │   │   │   ├── checkpoint_58.json
│   │   │   │   │   ├── checkpoint_59.json
│   │   │   │   │   ├── checkpoint_6.json
│   │   │   │   │   ├── checkpoint_60.json
│   │   │   │   │   ├── checkpoint_61.json
│   │   │   │   │   ├── checkpoint_62.json
│   │   │   │   │   ├── checkpoint_63.json
│   │   │   │   │   ├── checkpoint_64.json
│   │   │   │   │   ├── checkpoint_65.json
│   │   │   │   │   ├── checkpoint_66.json
│   │   │   │   │   ├── checkpoint_67.json
│   │   │   │   │   ├── checkpoint_68.json
│   │   │   │   │   ├── checkpoint_69.json
│   │   │   │   │   ├── checkpoint_7.json
│   │   │   │   │   ├── checkpoint_70.json
│   │   │   │   │   ├── checkpoint_71.json
│   │   │   │   │   ├── checkpoint_72.json
│   │   │   │   │   ├── checkpoint_73.json
│   │   │   │   │   ├── checkpoint_74.json
│   │   │   │   │   ├── checkpoint_75.json
│   │   │   │   │   ├── checkpoint_76.json
│   │   │   │   │   ├── checkpoint_77.json
│   │   │   │   │   ├── checkpoint_78.json
│   │   │   │   │   ├── checkpoint_79.json
│   │   │   │   │   ├── checkpoint_8.json
│   │   │   │   │   ├── checkpoint_80.json
│   │   │   │   │   ├── checkpoint_81.json
│   │   │   │   │   ├── checkpoint_82.json
│   │   │   │   │   ├── checkpoint_83.json
│   │   │   │   │   ├── checkpoint_84.json
│   │   │   │   │   ├── checkpoint_85.json
│   │   │   │   │   ├── checkpoint_86.json
│   │   │   │   │   ├── checkpoint_87.json
│   │   │   │   │   ├── checkpoint_88.json
│   │   │   │   │   ├── checkpoint_89.json
│   │   │   │   │   ├── checkpoint_9.json
│   │   │   │   │   ├── checkpoint_90.json
│   │   │   │   │   ├── checkpoint_91.json
│   │   │   │   │   ├── checkpoint_92.json
│   │   │   │   │   ├── checkpoint_93.json
│   │   │   │   │   ├── checkpoint_94.json
│   │   │   │   │   ├── checkpoint_95.json
│   │   │   │   │   ├── checkpoint_96.json
│   │   │   │   │   ├── checkpoint_97.json
│   │   │   │   │   ├── checkpoint_98.json
│   │   │   │   │   └── checkpoint_99.json
│   │   │   │   ├── getSnapshotProposerSequence/
│   │   │   │   │   ├── blockNum_1.json
│   │   │   │   │   ├── blockNum_1062656.json
│   │   │   │   │   ├── blockNum_1069055.json
│   │   │   │   │   ├── blockNum_1069056.json
│   │   │   │   │   ├── blockNum_1072256.json
│   │   │   │   │   ├── blockNum_1075455.json
│   │   │   │   │   ├── blockNum_1075456.json
│   │   │   │   │   ├── blockNum_1081855.json
│   │   │   │   │   ├── blockNum_1158656.json
│   │   │   │   │   ├── blockNum_1165055.json
│   │   │   │   │   ├── blockNum_255.json
│   │   │   │   │   ├── blockNum_8179456.json
│   │   │   │   │   ├── blockNum_8185855.json
│   │   │   │   │   ├── blockNum_8185856.json
│   │   │   │   │   ├── blockNum_8187309.json
│   │   │   │   │   └── blockNum_8192255.json
│   │   │   │   ├── milestones/
│   │   │   │   │   ├── milestone_285542.json
│   │   │   │   │   ├── milestone_285543.json
│   │   │   │   │   ├── milestone_285544.json
│   │   │   │   │   ├── milestone_285545.json
│   │   │   │   │   ├── milestone_285546.json
│   │   │   │   │   ├── milestone_285547.json
│   │   │   │   │   ├── milestone_285548.json
│   │   │   │   │   ├── milestone_285549.json
│   │   │   │   │   ├── milestone_285550.json
│   │   │   │   │   ├── milestone_285551.json
│   │   │   │   │   ├── milestone_285552.json
│   │   │   │   │   ├── milestone_285553.json
│   │   │   │   │   ├── milestone_285554.json
│   │   │   │   │   ├── milestone_285555.json
│   │   │   │   │   ├── milestone_285556.json
│   │   │   │   │   ├── milestone_285557.json
│   │   │   │   │   ├── milestone_285558.json
│   │   │   │   │   ├── milestone_285559.json
│   │   │   │   │   ├── milestone_285560.json
│   │   │   │   │   ├── milestone_285561.json
│   │   │   │   │   ├── milestone_285562.json
│   │   │   │   │   ├── milestone_285563.json
│   │   │   │   │   ├── milestone_285564.json
│   │   │   │   │   ├── milestone_285565.json
│   │   │   │   │   ├── milestone_285566.json
│   │   │   │   │   ├── milestone_285567.json
│   │   │   │   │   ├── milestone_285568.json
│   │   │   │   │   ├── milestone_285569.json
│   │   │   │   │   ├── milestone_285570.json
│   │   │   │   │   ├── milestone_285571.json
│   │   │   │   │   ├── milestone_285572.json
│   │   │   │   │   ├── milestone_285573.json
│   │   │   │   │   ├── milestone_285574.json
│   │   │   │   │   ├── milestone_285575.json
│   │   │   │   │   ├── milestone_285576.json
│   │   │   │   │   ├── milestone_285577.json
│   │   │   │   │   ├── milestone_285578.json
│   │   │   │   │   ├── milestone_285579.json
│   │   │   │   │   ├── milestone_285580.json
│   │   │   │   │   ├── milestone_285581.json
│   │   │   │   │   ├── milestone_285582.json
│   │   │   │   │   ├── milestone_285583.json
│   │   │   │   │   ├── milestone_285584.json
│   │   │   │   │   ├── milestone_285585.json
│   │   │   │   │   ├── milestone_285586.json
│   │   │   │   │   ├── milestone_285587.json
│   │   │   │   │   ├── milestone_285588.json
│   │   │   │   │   ├── milestone_285589.json
│   │   │   │   │   ├── milestone_285590.json
│   │   │   │   │   ├── milestone_285591.json
│   │   │   │   │   ├── milestone_285592.json
│   │   │   │   │   ├── milestone_285593.json
│   │   │   │   │   ├── milestone_285594.json
│   │   │   │   │   ├── milestone_285595.json
│   │   │   │   │   ├── milestone_285596.json
│   │   │   │   │   ├── milestone_285597.json
│   │   │   │   │   ├── milestone_285598.json
│   │   │   │   │   ├── milestone_285599.json
│   │   │   │   │   ├── milestone_285600.json
│   │   │   │   │   ├── milestone_285601.json
│   │   │   │   │   ├── milestone_285602.json
│   │   │   │   │   ├── milestone_285603.json
│   │   │   │   │   ├── milestone_285604.json
│   │   │   │   │   ├── milestone_285605.json
│   │   │   │   │   ├── milestone_285606.json
│   │   │   │   │   ├── milestone_285607.json
│   │   │   │   │   ├── milestone_285608.json
│   │   │   │   │   ├── milestone_285609.json
│   │   │   │   │   ├── milestone_285610.json
│   │   │   │   │   ├── milestone_285611.json
│   │   │   │   │   ├── milestone_285612.json
│   │   │   │   │   ├── milestone_285613.json
│   │   │   │   │   ├── milestone_285614.json
│   │   │   │   │   ├── milestone_285615.json
│   │   │   │   │   ├── milestone_285616.json
│   │   │   │   │   ├── milestone_285617.json
│   │   │   │   │   ├── milestone_285618.json
│   │   │   │   │   ├── milestone_285619.json
│   │   │   │   │   ├── milestone_285620.json
│   │   │   │   │   ├── milestone_285621.json
│   │   │   │   │   ├── milestone_285622.json
│   │   │   │   │   ├── milestone_285623.json
│   │   │   │   │   ├── milestone_285624.json
│   │   │   │   │   ├── milestone_285625.json
│   │   │   │   │   ├── milestone_285626.json
│   │   │   │   │   ├── milestone_285627.json
│   │   │   │   │   ├── milestone_285628.json
│   │   │   │   │   ├── milestone_285629.json
│   │   │   │   │   ├── milestone_285630.json
│   │   │   │   │   ├── milestone_285631.json
│   │   │   │   │   ├── milestone_285632.json
│   │   │   │   │   ├── milestone_285633.json
│   │   │   │   │   ├── milestone_285634.json
│   │   │   │   │   ├── milestone_285635.json
│   │   │   │   │   ├── milestone_285636.json
│   │   │   │   │   ├── milestone_285637.json
│   │   │   │   │   ├── milestone_285638.json
│   │   │   │   │   ├── milestone_285639.json
│   │   │   │   │   ├── milestone_285640.json
│   │   │   │   │   └── milestone_285641.json
│   │   │   │   └── spans/
│   │   │   │       ├── span_0.json
│   │   │   │       ├── span_1.json
│   │   │   │       ├── span_10.json
│   │   │   │       ├── span_100.json
│   │   │   │       ├── span_1000.json
│   │   │   │       ├── span_1001.json
│   │   │   │       ├── span_1002.json
│   │   │   │       ├── span_1003.json
│   │   │   │       ├── span_1004.json
│   │   │   │       ├── span_1005.json
│   │   │   │       ├── span_1006.json
│   │   │   │       ├── span_1007.json
│   │   │   │       ├── span_1008.json
│   │   │   │       ├── span_1009.json
│   │   │   │       ├── span_101.json
│   │   │   │       ├── span_1010.json
│   │   │   │       ├── span_1011.json
│   │   │   │       ├── span_1012.json
│   │   │   │       ├── span_1013.json
│   │   │   │       ├── span_1014.json
│   │   │   │       ├── span_1015.json
│   │   │   │       ├── span_1016.json
│   │   │   │       ├── span_1017.json
│   │   │   │       ├── span_1018.json
│   │   │   │       ├── span_1019.json
│   │   │   │       ├── span_102.json
│   │   │   │       ├── span_1020.json
│   │   │   │       ├── span_1021.json
│   │   │   │       ├── span_1022.json
│   │   │   │       ├── span_1023.json
│   │   │   │       ├── span_1024.json
│   │   │   │       ├── span_1025.json
│   │   │   │       ├── span_1026.json
│   │   │   │       ├── span_1027.json
│   │   │   │       ├── span_1028.json
│   │   │   │       ├── span_1029.json
│   │   │   │       ├── span_103.json
│   │   │   │       ├── span_1030.json
│   │   │   │       ├── span_1031.json
│   │   │   │       ├── span_1032.json
│   │   │   │       ├── span_1033.json
│   │   │   │       ├── span_1034.json
│   │   │   │       ├── span_1035.json
│   │   │   │       ├── span_1036.json
│   │   │   │       ├── span_1037.json
│   │   │   │       ├── span_1038.json
│   │   │   │       ├── span_1039.json
│   │   │   │       ├── span_104.json
│   │   │   │       ├── span_1040.json
│   │   │   │       ├── span_1041.json
│   │   │   │       ├── span_1042.json
│   │   │   │       ├── span_1043.json
│   │   │   │       ├── span_1044.json
│   │   │   │       ├── span_1045.json
│   │   │   │       ├── span_1046.json
│   │   │   │       ├── span_1047.json
│   │   │   │       ├── span_1048.json
│   │   │   │       ├── span_1049.json
│   │   │   │       ├── span_105.json
│   │   │   │       ├── span_1050.json
│   │   │   │       ├── span_1051.json
│   │   │   │       ├── span_1052.json
│   │   │   │       ├── span_1053.json
│   │   │   │       ├── span_1054.json
│   │   │   │       ├── span_1055.json
│   │   │   │       ├── span_1056.json
│   │   │   │       ├── span_1057.json
│   │   │   │       ├── span_1058.json
│   │   │   │       ├── span_1059.json
│   │   │   │       ├── span_106.json
│   │   │   │       ├── span_1060.json
│   │   │   │       ├── span_1061.json
│   │   │   │       ├── span_1062.json
│   │   │   │       ├── span_1063.json
│   │   │   │       ├── span_1064.json
│   │   │   │       ├── span_1065.json
│   │   │   │       ├── span_1066.json
│   │   │   │       ├── span_1067.json
│   │   │   │       ├── span_1068.json
│   │   │   │       ├── span_1069.json
│   │   │   │       ├── span_107.json
│   │   │   │       ├── span_1070.json
│   │   │   │       ├── span_1071.json
│   │   │   │       ├── span_1072.json
│   │   │   │       ├── span_1073.json
│   │   │   │       ├── span_1074.json
│   │   │   │       ├── span_1075.json
│   │   │   │       ├── span_1076.json
│   │   │   │       ├── span_1077.json
│   │   │   │       ├── span_1078.json
│   │   │   │       ├── span_1079.json
│   │   │   │       ├── span_108.json
│   │   │   │       ├── span_1080.json
│   │   │   │       ├── span_1081.json
│   │   │   │       ├── span_1082.json
│   │   │   │       ├── span_1083.json
│   │   │   │       ├── span_1084.json
│   │   │   │       ├── span_1085.json
│   │   │   │       ├── span_1086.json
│   │   │   │       ├── span_1087.json
│   │   │   │       ├── span_1088.json
│   │   │   │       ├── span_1089.json
│   │   │   │       ├── span_109.json
│   │   │   │       ├── span_1090.json
│   │   │   │       ├── span_1091.json
│   │   │   │       ├── span_1092.json
│   │   │   │       ├── span_1093.json
│   │   │   │       ├── span_1094.json
│   │   │   │       ├── span_1095.json
│   │   │   │       ├── span_1096.json
│   │   │   │       ├── span_1097.json
│   │   │   │       ├── span_1098.json
│   │   │   │       ├── span_1099.json
│   │   │   │       ├── span_11.json
│   │   │   │       ├── span_110.json
│   │   │   │       ├── span_1100.json
│   │   │   │       ├── span_1101.json
│   │   │   │       ├── span_1102.json
│   │   │   │       ├── span_1103.json
│   │   │   │       ├── span_1104.json
│   │   │   │       ├── span_1105.json
│   │   │   │       ├── span_1106.json
│   │   │   │       ├── span_1107.json
│   │   │   │       ├── span_1108.json
│   │   │   │       ├── span_1109.json
│   │   │   │       ├── span_111.json
│   │   │   │       ├── span_1110.json
│   │   │   │       ├── span_1111.json
│   │   │   │       ├── span_1112.json
│   │   │   │       ├── span_1113.json
│   │   │   │       ├── span_1114.json
│   │   │   │       ├── span_1115.json
│   │   │   │       ├── span_1116.json
│   │   │   │       ├── span_1117.json
│   │   │   │       ├── span_1118.json
│   │   │   │       ├── span_1119.json
│   │   │   │       ├── span_112.json
│   │   │   │       ├── span_1120.json
│   │   │   │       ├── span_1121.json
│   │   │   │       ├── span_1122.json
│   │   │   │       ├── span_1123.json
│   │   │   │       ├── span_1124.json
│   │   │   │       ├── span_1125.json
│   │   │   │       ├── span_1126.json
│   │   │   │       ├── span_1127.json
│   │   │   │       ├── span_1128.json
│   │   │   │       ├── span_1129.json
│   │   │   │       ├── span_113.json
│   │   │   │       ├── span_1130.json
│   │   │   │       ├── span_1131.json
│   │   │   │       ├── span_1132.json
│   │   │   │       ├── span_1133.json
│   │   │   │       ├── span_1134.json
│   │   │   │       ├── span_1135.json
│   │   │   │       ├── span_1136.json
│   │   │   │       ├── span_1137.json
│   │   │   │       ├── span_1138.json
│   │   │   │       ├── span_1139.json
│   │   │   │       ├── span_114.json
│   │   │   │       ├── span_1140.json
│   │   │   │       ├── span_1141.json
│   │   │   │       ├── span_1142.json
│   │   │   │       ├── span_1143.json
│   │   │   │       ├── span_1144.json
│   │   │   │       ├── span_1145.json
│   │   │   │       ├── span_1146.json
│   │   │   │       ├── span_1147.json
│   │   │   │       ├── span_1148.json
│   │   │   │       ├── span_1149.json
│   │   │   │       ├── span_115.json
│   │   │   │       ├── span_1150.json
│   │   │   │       ├── span_1151.json
│   │   │   │       ├── span_1152.json
│   │   │   │       ├── span_1153.json
│   │   │   │       ├── span_1154.json
│   │   │   │       ├── span_1155.json
│   │   │   │       ├── span_1156.json
│   │   │   │       ├── span_1157.json
│   │   │   │       ├── span_1158.json
│   │   │   │       ├── span_1159.json
│   │   │   │       ├── span_116.json
│   │   │   │       ├── span_1160.json
│   │   │   │       ├── span_1161.json
│   │   │   │       ├── span_1162.json
│   │   │   │       ├── span_1163.json
│   │   │   │       ├── span_1164.json
│   │   │   │       ├── span_1165.json
│   │   │   │       ├── span_1166.json
│   │   │   │       ├── span_1167.json
│   │   │   │       ├── span_1168.json
│   │   │   │       ├── span_1169.json
│   │   │   │       ├── span_117.json
│   │   │   │       ├── span_1170.json
│   │   │   │       ├── span_1171.json
│   │   │   │       ├── span_1172.json
│   │   │   │       ├── span_1173.json
│   │   │   │       ├── span_1174.json
│   │   │   │       ├── span_1175.json
│   │   │   │       ├── span_1176.json
│   │   │   │       ├── span_1177.json
│   │   │   │       ├── span_1178.json
│   │   │   │       ├── span_1179.json
│   │   │   │       ├── span_118.json
│   │   │   │       ├── span_1180.json
│   │   │   │       ├── span_1181.json
│   │   │   │       ├── span_1182.json
│   │   │   │       ├── span_1183.json
│   │   │   │       ├── span_1184.json
│   │   │   │       ├── span_1185.json
│   │   │   │       ├── span_1186.json
│   │   │   │       ├── span_1187.json
│   │   │   │       ├── span_1188.json
│   │   │   │       ├── span_1189.json
│   │   │   │       ├── span_119.json
│   │   │   │       ├── span_1190.json
│   │   │   │       ├── span_1191.json
│   │   │   │       ├── span_1192.json
│   │   │   │       ├── span_1193.json
│   │   │   │       ├── span_1194.json
│   │   │   │       ├── span_1195.json
│   │   │   │       ├── span_1196.json
│   │   │   │       ├── span_1197.json
│   │   │   │       ├── span_1198.json
│   │   │   │       ├── span_1199.json
│   │   │   │       ├── span_12.json
│   │   │   │       ├── span_120.json
│   │   │   │       ├── span_1200.json
│   │   │   │       ├── span_1201.json
│   │   │   │       ├── span_1202.json
│   │   │   │       ├── span_1203.json
│   │   │   │       ├── span_1204.json
│   │   │   │       ├── span_1205.json
│   │   │   │       ├── span_1206.json
│   │   │   │       ├── span_1207.json
│   │   │   │       ├── span_1208.json
│   │   │   │       ├── span_1209.json
│   │   │   │       ├── span_121.json
│   │   │   │       ├── span_1210.json
│   │   │   │       ├── span_1211.json
│   │   │   │       ├── span_1212.json
│   │   │   │       ├── span_1213.json
│   │   │   │       ├── span_1214.json
│   │   │   │       ├── span_1215.json
│   │   │   │       ├── span_1216.json
│   │   │   │       ├── span_1217.json
│   │   │   │       ├── span_1218.json
│   │   │   │       ├── span_1219.json
│   │   │   │       ├── span_122.json
│   │   │   │       ├── span_1220.json
│   │   │   │       ├── span_1221.json
│   │   │   │       ├── span_1222.json
│   │   │   │       ├── span_1223.json
│   │   │   │       ├── span_1224.json
│   │   │   │       ├── span_1225.json
│   │   │   │       ├── span_1226.json
│   │   │   │       ├── span_1227.json
│   │   │   │       ├── span_1228.json
│   │   │   │       ├── span_1229.json
│   │   │   │       ├── span_123.json
│   │   │   │       ├── span_1230.json
│   │   │   │       ├── span_1231.json
│   │   │   │       ├── span_1232.json
│   │   │   │       ├── span_1233.json
│   │   │   │       ├── span_1234.json
│   │   │   │       ├── span_1235.json
│   │   │   │       ├── span_1236.json
│   │   │   │       ├── span_1237.json
│   │   │   │       ├── span_1238.json
│   │   │   │       ├── span_1239.json
│   │   │   │       ├── span_124.json
│   │   │   │       ├── span_1240.json
│   │   │   │       ├── span_1241.json
│   │   │   │       ├── span_1242.json
│   │   │   │       ├── span_1243.json
│   │   │   │       ├── span_1244.json
│   │   │   │       ├── span_1245.json
│   │   │   │       ├── span_1246.json
│   │   │   │       ├── span_1247.json
│   │   │   │       ├── span_1248.json
│   │   │   │       ├── span_1249.json
│   │   │   │       ├── span_125.json
│   │   │   │       ├── span_1250.json
│   │   │   │       ├── span_1251.json
│   │   │   │       ├── span_1252.json
│   │   │   │       ├── span_1253.json
│   │   │   │       ├── span_1254.json
│   │   │   │       ├── span_1255.json
│   │   │   │       ├── span_1256.json
│   │   │   │       ├── span_1257.json
│   │   │   │       ├── span_1258.json
│   │   │   │       ├── span_1259.json
│   │   │   │       ├── span_126.json
│   │   │   │       ├── span_1260.json
│   │   │   │       ├── span_1261.json
│   │   │   │       ├── span_1262.json
│   │   │   │       ├── span_1263.json
│   │   │   │       ├── span_1264.json
│   │   │   │       ├── span_1265.json
│   │   │   │       ├── span_1266.json
│   │   │   │       ├── span_1267.json
│   │   │   │       ├── span_1268.json
│   │   │   │       ├── span_1269.json
│   │   │   │       ├── span_127.json
│   │   │   │       ├── span_1270.json
│   │   │   │       ├── span_1271.json
│   │   │   │       ├── span_1272.json
│   │   │   │       ├── span_1273.json
│   │   │   │       ├── span_1274.json
│   │   │   │       ├── span_1275.json
│   │   │   │       ├── span_1276.json
│   │   │   │       ├── span_1277.json
│   │   │   │       ├── span_1278.json
│   │   │   │       ├── span_1279.json
│   │   │   │       ├── span_128.json
│   │   │   │       ├── span_1280.json
│   │   │   │       ├── span_129.json
│   │   │   │       ├── span_13.json
│   │   │   │       ├── span_130.json
│   │   │   │       ├── span_131.json
│   │   │   │       ├── span_132.json
│   │   │   │       ├── span_133.json
│   │   │   │       ├── span_134.json
│   │   │   │       ├── span_135.json
│   │   │   │       ├── span_136.json
│   │   │   │       ├── span_137.json
│   │   │   │       ├── span_138.json
│   │   │   │       ├── span_139.json
│   │   │   │       ├── span_14.json
│   │   │   │       ├── span_140.json
│   │   │   │       ├── span_141.json
│   │   │   │       ├── span_142.json
│   │   │   │       ├── span_143.json
│   │   │   │       ├── span_144.json
│   │   │   │       ├── span_145.json
│   │   │   │       ├── span_146.json
│   │   │   │       ├── span_147.json
│   │   │   │       ├── span_148.json
│   │   │   │       ├── span_149.json
│   │   │   │       ├── span_15.json
│   │   │   │       ├── span_150.json
│   │   │   │       ├── span_151.json
│   │   │   │       ├── span_152.json
│   │   │   │       ├── span_153.json
│   │   │   │       ├── span_154.json
│   │   │   │       ├── span_155.json
│   │   │   │       ├── span_156.json
│   │   │   │       ├── span_157.json
│   │   │   │       ├── span_158.json
│   │   │   │       ├── span_159.json
│   │   │   │       ├── span_16.json
│   │   │   │       ├── span_160.json
│   │   │   │       ├── span_161.json
│   │   │   │       ├── span_162.json
│   │   │   │       ├── span_163.json
│   │   │   │       ├── span_164.json
│   │   │   │       ├── span_165.json
│   │   │   │       ├── span_166.json
│   │   │   │       ├── span_167.json
│   │   │   │       ├── span_168.json
│   │   │   │       ├── span_169.json
│   │   │   │       ├── span_17.json
│   │   │   │       ├── span_170.json
│   │   │   │       ├── span_171.json
│   │   │   │       ├── span_172.json
│   │   │   │       ├── span_173.json
│   │   │   │       ├── span_174.json
│   │   │   │       ├── span_175.json
│   │   │   │       ├── span_176.json
│   │   │   │       ├── span_177.json
│   │   │   │       ├── span_178.json
│   │   │   │       ├── span_179.json
│   │   │   │       ├── span_18.json
│   │   │   │       ├── span_180.json
│   │   │   │       ├── span_181.json
│   │   │   │       ├── span_182.json
│   │   │   │       ├── span_183.json
│   │   │   │       ├── span_184.json
│   │   │   │       ├── span_185.json
│   │   │   │       ├── span_186.json
│   │   │   │       ├── span_187.json
│   │   │   │       ├── span_188.json
│   │   │   │       ├── span_189.json
│   │   │   │       ├── span_19.json
│   │   │   │       ├── span_190.json
│   │   │   │       ├── span_191.json
│   │   │   │       ├── span_192.json
│   │   │   │       ├── span_193.json
│   │   │   │       ├── span_194.json
│   │   │   │       ├── span_195.json
│   │   │   │       ├── span_196.json
│   │   │   │       ├── span_197.json
│   │   │   │       ├── span_198.json
│   │   │   │       ├── span_199.json
│   │   │   │       ├── span_2.json
│   │   │   │       ├── span_20.json
│   │   │   │       ├── span_200.json
│   │   │   │       ├── span_201.json
│   │   │   │       ├── span_202.json
│   │   │   │       ├── span_203.json
│   │   │   │       ├── span_204.json
│   │   │   │       ├── span_205.json
│   │   │   │       ├── span_206.json
│   │   │   │       ├── span_207.json
│   │   │   │       ├── span_208.json
│   │   │   │       ├── span_209.json
│   │   │   │       ├── span_21.json
│   │   │   │       ├── span_210.json
│   │   │   │       ├── span_211.json
│   │   │   │       ├── span_212.json
│   │   │   │       ├── span_213.json
│   │   │   │       ├── span_214.json
│   │   │   │       ├── span_215.json
│   │   │   │       ├── span_216.json
│   │   │   │       ├── span_217.json
│   │   │   │       ├── span_218.json
│   │   │   │       ├── span_219.json
│   │   │   │       ├── span_22.json
│   │   │   │       ├── span_220.json
│   │   │   │       ├── span_221.json
│   │   │   │       ├── span_222.json
│   │   │   │       ├── span_223.json
│   │   │   │       ├── span_224.json
│   │   │   │       ├── span_225.json
│   │   │   │       ├── span_226.json
│   │   │   │       ├── span_227.json
│   │   │   │       ├── span_228.json
│   │   │   │       ├── span_229.json
│   │   │   │       ├── span_23.json
│   │   │   │       ├── span_230.json
│   │   │   │       ├── span_231.json
│   │   │   │       ├── span_232.json
│   │   │   │       ├── span_233.json
│   │   │   │       ├── span_234.json
│   │   │   │       ├── span_235.json
│   │   │   │       ├── span_236.json
│   │   │   │       ├── span_237.json
│   │   │   │       ├── span_238.json
│   │   │   │       ├── span_239.json
│   │   │   │       ├── span_24.json
│   │   │   │       ├── span_240.json
│   │   │   │       ├── span_241.json
│   │   │   │       ├── span_242.json
│   │   │   │       ├── span_243.json
│   │   │   │       ├── span_244.json
│   │   │   │       ├── span_245.json
│   │   │   │       ├── span_246.json
│   │   │   │       ├── span_247.json
│   │   │   │       ├── span_248.json
│   │   │   │       ├── span_249.json
│   │   │   │       ├── span_25.json
│   │   │   │       ├── span_250.json
│   │   │   │       ├── span_251.json
│   │   │   │       ├── span_252.json
│   │   │   │       ├── span_253.json
│   │   │   │       ├── span_254.json
│   │   │   │       ├── span_255.json
│   │   │   │       ├── span_256.json
│   │   │   │       ├── span_257.json
│   │   │   │       ├── span_258.json
│   │   │   │       ├── span_259.json
│   │   │   │       ├── span_26.json
│   │   │   │       ├── span_260.json
│   │   │   │       ├── span_261.json
│   │   │   │       ├── span_262.json
│   │   │   │       ├── span_263.json
│   │   │   │       ├── span_264.json
│   │   │   │       ├── span_265.json
│   │   │   │       ├── span_266.json
│   │   │   │       ├── span_267.json
│   │   │   │       ├── span_268.json
│   │   │   │       ├── span_269.json
│   │   │   │       ├── span_27.json
│   │   │   │       ├── span_270.json
│   │   │   │       ├── span_271.json
│   │   │   │       ├── span_272.json
│   │   │   │       ├── span_273.json
│   │   │   │       ├── span_274.json
│   │   │   │       ├── span_275.json
│   │   │   │       ├── span_276.json
│   │   │   │       ├── span_277.json
│   │   │   │       ├── span_278.json
│   │   │   │       ├── span_279.json
│   │   │   │       ├── span_28.json
│   │   │   │       ├── span_280.json
│   │   │   │       ├── span_281.json
│   │   │   │       ├── span_282.json
│   │   │   │       ├── span_283.json
│   │   │   │       ├── span_284.json
│   │   │   │       ├── span_285.json
│   │   │   │       ├── span_286.json
│   │   │   │       ├── span_287.json
│   │   │   │       ├── span_288.json
│   │   │   │       ├── span_289.json
│   │   │   │       ├── span_29.json
│   │   │   │       ├── span_290.json
│   │   │   │       ├── span_291.json
│   │   │   │       ├── span_292.json
│   │   │   │       ├── span_293.json
│   │   │   │       ├── span_294.json
│   │   │   │       ├── span_295.json
│   │   │   │       ├── span_296.json
│   │   │   │       ├── span_297.json
│   │   │   │       ├── span_298.json
│   │   │   │       ├── span_299.json
│   │   │   │       ├── span_3.json
│   │   │   │       ├── span_30.json
│   │   │   │       ├── span_300.json
│   │   │   │       ├── span_301.json
│   │   │   │       ├── span_302.json
│   │   │   │       ├── span_303.json
│   │   │   │       ├── span_304.json
│   │   │   │       ├── span_305.json
│   │   │   │       ├── span_306.json
│   │   │   │       ├── span_307.json
│   │   │   │       ├── span_308.json
│   │   │   │       ├── span_309.json
│   │   │   │       ├── span_31.json
│   │   │   │       ├── span_310.json
│   │   │   │       ├── span_311.json
│   │   │   │       ├── span_312.json
│   │   │   │       ├── span_313.json
│   │   │   │       ├── span_314.json
│   │   │   │       ├── span_315.json
│   │   │   │       ├── span_316.json
│   │   │   │       ├── span_317.json
│   │   │   │       ├── span_318.json
│   │   │   │       ├── span_319.json
│   │   │   │       ├── span_32.json
│   │   │   │       ├── span_320.json
│   │   │   │       ├── span_321.json
│   │   │   │       ├── span_322.json
│   │   │   │       ├── span_323.json
│   │   │   │       ├── span_324.json
│   │   │   │       ├── span_325.json
│   │   │   │       ├── span_326.json
│   │   │   │       ├── span_327.json
│   │   │   │       ├── span_328.json
│   │   │   │       ├── span_329.json
│   │   │   │       ├── span_33.json
│   │   │   │       ├── span_330.json
│   │   │   │       ├── span_331.json
│   │   │   │       ├── span_332.json
│   │   │   │       ├── span_333.json
│   │   │   │       ├── span_334.json
│   │   │   │       ├── span_335.json
│   │   │   │       ├── span_336.json
│   │   │   │       ├── span_337.json
│   │   │   │       ├── span_338.json
│   │   │   │       ├── span_339.json
│   │   │   │       ├── span_34.json
│   │   │   │       ├── span_340.json
│   │   │   │       ├── span_341.json
│   │   │   │       ├── span_342.json
│   │   │   │       ├── span_343.json
│   │   │   │       ├── span_344.json
│   │   │   │       ├── span_345.json
│   │   │   │       ├── span_346.json
│   │   │   │       ├── span_347.json
│   │   │   │       ├── span_348.json
│   │   │   │       ├── span_349.json
│   │   │   │       ├── span_35.json
│   │   │   │       ├── span_350.json
│   │   │   │       ├── span_351.json
│   │   │   │       ├── span_352.json
│   │   │   │       ├── span_353.json
│   │   │   │       ├── span_354.json
│   │   │   │       ├── span_355.json
│   │   │   │       ├── span_356.json
│   │   │   │       ├── span_357.json
│   │   │   │       ├── span_358.json
│   │   │   │       ├── span_359.json
│   │   │   │       ├── span_36.json
│   │   │   │       ├── span_360.json
│   │   │   │       ├── span_361.json
│   │   │   │       ├── span_362.json
│   │   │   │       ├── span_363.json
│   │   │   │       ├── span_364.json
│   │   │   │       ├── span_365.json
│   │   │   │       ├── span_366.json
│   │   │   │       ├── span_367.json
│   │   │   │       ├── span_368.json
│   │   │   │       ├── span_369.json
│   │   │   │       ├── span_37.json
│   │   │   │       ├── span_370.json
│   │   │   │       ├── span_371.json
│   │   │   │       ├── span_372.json
│   │   │   │       ├── span_373.json
│   │   │   │       ├── span_374.json
│   │   │   │       ├── span_375.json
│   │   │   │       ├── span_376.json
│   │   │   │       ├── span_377.json
│   │   │   │       ├── span_378.json
│   │   │   │       ├── span_379.json
│   │   │   │       ├── span_38.json
│   │   │   │       ├── span_380.json
│   │   │   │       ├── span_381.json
│   │   │   │       ├── span_382.json
│   │   │   │       ├── span_383.json
│   │   │   │       ├── span_384.json
│   │   │   │       ├── span_385.json
│   │   │   │       ├── span_386.json
│   │   │   │       ├── span_387.json
│   │   │   │       ├── span_388.json
│   │   │   │       ├── span_389.json
│   │   │   │       ├── span_39.json
│   │   │   │       ├── span_390.json
│   │   │   │       ├── span_391.json
│   │   │   │       ├── span_392.json
│   │   │   │       ├── span_393.json
│   │   │   │       ├── span_394.json
│   │   │   │       ├── span_395.json
│   │   │   │       ├── span_396.json
│   │   │   │       ├── span_397.json
│   │   │   │       ├── span_398.json
│   │   │   │       ├── span_399.json
│   │   │   │       ├── span_4.json
│   │   │   │       ├── span_40.json
│   │   │   │       ├── span_400.json
│   │   │   │       ├── span_401.json
│   │   │   │       ├── span_402.json
│   │   │   │       ├── span_403.json
│   │   │   │       ├── span_404.json
│   │   │   │       ├── span_405.json
│   │   │   │       ├── span_406.json
│   │   │   │       ├── span_407.json
│   │   │   │       ├── span_408.json
│   │   │   │       ├── span_409.json
│   │   │   │       ├── span_41.json
│   │   │   │       ├── span_410.json
│   │   │   │       ├── span_411.json
│   │   │   │       ├── span_412.json
│   │   │   │       ├── span_413.json
│   │   │   │       ├── span_414.json
│   │   │   │       ├── span_415.json
│   │   │   │       ├── span_416.json
│   │   │   │       ├── span_417.json
│   │   │   │       ├── span_418.json
│   │   │   │       ├── span_419.json
│   │   │   │       ├── span_42.json
│   │   │   │       ├── span_420.json
│   │   │   │       ├── span_421.json
│   │   │   │       ├── span_422.json
│   │   │   │       ├── span_423.json
│   │   │   │       ├── span_424.json
│   │   │   │       ├── span_425.json
│   │   │   │       ├── span_426.json
│   │   │   │       ├── span_427.json
│   │   │   │       ├── span_428.json
│   │   │   │       ├── span_429.json
│   │   │   │       ├── span_43.json
│   │   │   │       ├── span_430.json
│   │   │   │       ├── span_431.json
│   │   │   │       ├── span_432.json
│   │   │   │       ├── span_433.json
│   │   │   │       ├── span_434.json
│   │   │   │       ├── span_435.json
│   │   │   │       ├── span_436.json
│   │   │   │       ├── span_437.json
│   │   │   │       ├── span_438.json
│   │   │   │       ├── span_439.json
│   │   │   │       ├── span_44.json
│   │   │   │       ├── span_440.json
│   │   │   │       ├── span_441.json
│   │   │   │       ├── span_442.json
│   │   │   │       ├── span_443.json
│   │   │   │       ├── span_444.json
│   │   │   │       ├── span_445.json
│   │   │   │       ├── span_446.json
│   │   │   │       ├── span_447.json
│   │   │   │       ├── span_448.json
│   │   │   │       ├── span_449.json
│   │   │   │       ├── span_45.json
│   │   │   │       ├── span_450.json
│   │   │   │       ├── span_451.json
│   │   │   │       ├── span_452.json
│   │   │   │       ├── span_453.json
│   │   │   │       ├── span_454.json
│   │   │   │       ├── span_455.json
│   │   │   │       ├── span_456.json
│   │   │   │       ├── span_457.json
│   │   │   │       ├── span_458.json
│   │   │   │       ├── span_459.json
│   │   │   │       ├── span_46.json
│   │   │   │       ├── span_460.json
│   │   │   │       ├── span_461.json
│   │   │   │       ├── span_462.json
│   │   │   │       ├── span_463.json
│   │   │   │       ├── span_464.json
│   │   │   │       ├── span_465.json
│   │   │   │       ├── span_466.json
│   │   │   │       ├── span_467.json
│   │   │   │       ├── span_468.json
│   │   │   │       ├── span_469.json
│   │   │   │       ├── span_47.json
│   │   │   │       ├── span_470.json
│   │   │   │       ├── span_471.json
│   │   │   │       ├── span_472.json
│   │   │   │       ├── span_473.json
│   │   │   │       ├── span_474.json
│   │   │   │       ├── span_475.json
│   │   │   │       ├── span_476.json
│   │   │   │       ├── span_477.json
│   │   │   │       ├── span_478.json
│   │   │   │       ├── span_479.json
│   │   │   │       ├── span_48.json
│   │   │   │       ├── span_480.json
│   │   │   │       ├── span_481.json
│   │   │   │       ├── span_482.json
│   │   │   │       ├── span_483.json
│   │   │   │       ├── span_484.json
│   │   │   │       ├── span_485.json
│   │   │   │       ├── span_486.json
│   │   │   │       ├── span_487.json
│   │   │   │       ├── span_488.json
│   │   │   │       ├── span_489.json
│   │   │   │       ├── span_49.json
│   │   │   │       ├── span_490.json
│   │   │   │       ├── span_491.json
│   │   │   │       ├── span_492.json
│   │   │   │       ├── span_493.json
│   │   │   │       ├── span_494.json
│   │   │   │       ├── span_495.json
│   │   │   │       ├── span_496.json
│   │   │   │       ├── span_497.json
│   │   │   │       ├── span_498.json
│   │   │   │       ├── span_499.json
│   │   │   │       ├── span_5.json
│   │   │   │       ├── span_50.json
│   │   │   │       ├── span_500.json
│   │   │   │       ├── span_501.json
│   │   │   │       ├── span_502.json
│   │   │   │       ├── span_503.json
│   │   │   │       ├── span_504.json
│   │   │   │       ├── span_505.json
│   │   │   │       ├── span_506.json
│   │   │   │       ├── span_507.json
│   │   │   │       ├── span_508.json
│   │   │   │       ├── span_509.json
│   │   │   │       ├── span_51.json
│   │   │   │       ├── span_510.json
│   │   │   │       ├── span_511.json
│   │   │   │       ├── span_512.json
│   │   │   │       ├── span_513.json
│   │   │   │       ├── span_514.json
│   │   │   │       ├── span_515.json
│   │   │   │       ├── span_516.json
│   │   │   │       ├── span_517.json
│   │   │   │       ├── span_518.json
│   │   │   │       ├── span_519.json
│   │   │   │       ├── span_52.json
│   │   │   │       ├── span_520.json
│   │   │   │       ├── span_521.json
│   │   │   │       ├── span_522.json
│   │   │   │       ├── span_523.json
│   │   │   │       ├── span_524.json
│   │   │   │       ├── span_525.json
│   │   │   │       ├── span_526.json
│   │   │   │       ├── span_527.json
│   │   │   │       ├── span_528.json
│   │   │   │       ├── span_529.json
│   │   │   │       ├── span_53.json
│   │   │   │       ├── span_530.json
│   │   │   │       ├── span_531.json
│   │   │   │       ├── span_532.json
│   │   │   │       ├── span_533.json
│   │   │   │       ├── span_534.json
│   │   │   │       ├── span_535.json
│   │   │   │       ├── span_536.json
│   │   │   │       ├── span_537.json
│   │   │   │       ├── span_538.json
│   │   │   │       ├── span_539.json
│   │   │   │       ├── span_54.json
│   │   │   │       ├── span_540.json
│   │   │   │       ├── span_541.json
│   │   │   │       ├── span_542.json
│   │   │   │       ├── span_543.json
│   │   │   │       ├── span_544.json
│   │   │   │       ├── span_545.json
│   │   │   │       ├── span_546.json
│   │   │   │       ├── span_547.json
│   │   │   │       ├── span_548.json
│   │   │   │       ├── span_549.json
│   │   │   │       ├── span_55.json
│   │   │   │       ├── span_550.json
│   │   │   │       ├── span_551.json
│   │   │   │       ├── span_552.json
│   │   │   │       ├── span_553.json
│   │   │   │       ├── span_554.json
│   │   │   │       ├── span_555.json
│   │   │   │       ├── span_556.json
│   │   │   │       ├── span_557.json
│   │   │   │       ├── span_558.json
│   │   │   │       ├── span_559.json
│   │   │   │       ├── span_56.json
│   │   │   │       ├── span_560.json
│   │   │   │       ├── span_561.json
│   │   │   │       ├── span_562.json
│   │   │   │       ├── span_563.json
│   │   │   │       ├── span_564.json
│   │   │   │       ├── span_565.json
│   │   │   │       ├── span_566.json
│   │   │   │       ├── span_567.json
│   │   │   │       ├── span_568.json
│   │   │   │       ├── span_569.json
│   │   │   │       ├── span_57.json
│   │   │   │       ├── span_570.json
│   │   │   │       ├── span_571.json
│   │   │   │       ├── span_572.json
│   │   │   │       ├── span_573.json
│   │   │   │       ├── span_574.json
│   │   │   │       ├── span_575.json
│   │   │   │       ├── span_576.json
│   │   │   │       ├── span_577.json
│   │   │   │       ├── span_578.json
│   │   │   │       ├── span_579.json
│   │   │   │       ├── span_58.json
│   │   │   │       ├── span_580.json
│   │   │   │       ├── span_581.json
│   │   │   │       ├── span_582.json
│   │   │   │       ├── span_583.json
│   │   │   │       ├── span_584.json
│   │   │   │       ├── span_585.json
│   │   │   │       ├── span_586.json
│   │   │   │       ├── span_587.json
│   │   │   │       ├── span_588.json
│   │   │   │       ├── span_589.json
│   │   │   │       ├── span_59.json
│   │   │   │       ├── span_590.json
│   │   │   │       ├── span_591.json
│   │   │   │       ├── span_592.json
│   │   │   │       ├── span_593.json
│   │   │   │       ├── span_594.json
│   │   │   │       ├── span_595.json
│   │   │   │       ├── span_596.json
│   │   │   │       ├── span_597.json
│   │   │   │       ├── span_598.json
│   │   │   │       ├── span_599.json
│   │   │   │       ├── span_6.json
│   │   │   │       ├── span_60.json
│   │   │   │       ├── span_600.json
│   │   │   │       ├── span_601.json
│   │   │   │       ├── span_602.json
│   │   │   │       ├── span_603.json
│   │   │   │       ├── span_604.json
│   │   │   │       ├── span_605.json
│   │   │   │       ├── span_606.json
│   │   │   │       ├── span_607.json
│   │   │   │       ├── span_608.json
│   │   │   │       ├── span_609.json
│   │   │   │       ├── span_61.json
│   │   │   │       ├── span_610.json
│   │   │   │       ├── span_611.json
│   │   │   │       ├── span_612.json
│   │   │   │       ├── span_613.json
│   │   │   │       ├── span_614.json
│   │   │   │       ├── span_615.json
│   │   │   │       ├── span_616.json
│   │   │   │       ├── span_617.json
│   │   │   │       ├── span_618.json
│   │   │   │       ├── span_619.json
│   │   │   │       ├── span_62.json
│   │   │   │       ├── span_620.json
│   │   │   │       ├── span_621.json
│   │   │   │       ├── span_622.json
│   │   │   │       ├── span_623.json
│   │   │   │       ├── span_624.json
│   │   │   │       ├── span_625.json
│   │   │   │       ├── span_626.json
│   │   │   │       ├── span_627.json
│   │   │   │       ├── span_628.json
│   │   │   │       ├── span_629.json
│   │   │   │       ├── span_63.json
│   │   │   │       ├── span_630.json
│   │   │   │       ├── span_631.json
│   │   │   │       ├── span_632.json
│   │   │   │       ├── span_633.json
│   │   │   │       ├── span_634.json
│   │   │   │       ├── span_635.json
│   │   │   │       ├── span_636.json
│   │   │   │       ├── span_637.json
│   │   │   │       ├── span_638.json
│   │   │   │       ├── span_639.json
│   │   │   │       ├── span_64.json
│   │   │   │       ├── span_640.json
│   │   │   │       ├── span_641.json
│   │   │   │       ├── span_642.json
│   │   │   │       ├── span_643.json
│   │   │   │       ├── span_644.json
│   │   │   │       ├── span_645.json
│   │   │   │       ├── span_646.json
│   │   │   │       ├── span_647.json
│   │   │   │       ├── span_648.json
│   │   │   │       ├── span_649.json
│   │   │   │       ├── span_65.json
│   │   │   │       ├── span_650.json
│   │   │   │       ├── span_651.json
│   │   │   │       ├── span_652.json
│   │   │   │       ├── span_653.json
│   │   │   │       ├── span_654.json
│   │   │   │       ├── span_655.json
│   │   │   │       ├── span_656.json
│   │   │   │       ├── span_657.json
│   │   │   │       ├── span_658.json
│   │   │   │       ├── span_659.json
│   │   │   │       ├── span_66.json
│   │   │   │       ├── span_660.json
│   │   │   │       ├── span_661.json
│   │   │   │       ├── span_662.json
│   │   │   │       ├── span_663.json
│   │   │   │       ├── span_664.json
│   │   │   │       ├── span_665.json
│   │   │   │       ├── span_666.json
│   │   │   │       ├── span_667.json
│   │   │   │       ├── span_668.json
│   │   │   │       ├── span_669.json
│   │   │   │       ├── span_67.json
│   │   │   │       ├── span_670.json
│   │   │   │       ├── span_671.json
│   │   │   │       ├── span_672.json
│   │   │   │       ├── span_673.json
│   │   │   │       ├── span_674.json
│   │   │   │       ├── span_675.json
│   │   │   │       ├── span_676.json
│   │   │   │       ├── span_677.json
│   │   │   │       ├── span_678.json
│   │   │   │       ├── span_679.json
│   │   │   │       ├── span_68.json
│   │   │   │       ├── span_680.json
│   │   │   │       ├── span_681.json
│   │   │   │       ├── span_682.json
│   │   │   │       ├── span_683.json
│   │   │   │       ├── span_684.json
│   │   │   │       ├── span_685.json
│   │   │   │       ├── span_686.json
│   │   │   │       ├── span_687.json
│   │   │   │       ├── span_688.json
│   │   │   │       ├── span_689.json
│   │   │   │       ├── span_69.json
│   │   │   │       ├── span_690.json
│   │   │   │       ├── span_691.json
│   │   │   │       ├── span_692.json
│   │   │   │       ├── span_693.json
│   │   │   │       ├── span_694.json
│   │   │   │       ├── span_695.json
│   │   │   │       ├── span_696.json
│   │   │   │       ├── span_697.json
│   │   │   │       ├── span_698.json
│   │   │   │       ├── span_699.json
│   │   │   │       ├── span_7.json
│   │   │   │       ├── span_70.json
│   │   │   │       ├── span_700.json
│   │   │   │       ├── span_701.json
│   │   │   │       ├── span_702.json
│   │   │   │       ├── span_703.json
│   │   │   │       ├── span_704.json
│   │   │   │       ├── span_705.json
│   │   │   │       ├── span_706.json
│   │   │   │       ├── span_707.json
│   │   │   │       ├── span_708.json
│   │   │   │       ├── span_709.json
│   │   │   │       ├── span_71.json
│   │   │   │       ├── span_710.json
│   │   │   │       ├── span_711.json
│   │   │   │       ├── span_712.json
│   │   │   │       ├── span_713.json
│   │   │   │       ├── span_714.json
│   │   │   │       ├── span_715.json
│   │   │   │       ├── span_716.json
│   │   │   │       ├── span_717.json
│   │   │   │       ├── span_718.json
│   │   │   │       ├── span_719.json
│   │   │   │       ├── span_72.json
│   │   │   │       ├── span_720.json
│   │   │   │       ├── span_721.json
│   │   │   │       ├── span_722.json
│   │   │   │       ├── span_723.json
│   │   │   │       ├── span_724.json
│   │   │   │       ├── span_725.json
│   │   │   │       ├── span_726.json
│   │   │   │       ├── span_727.json
│   │   │   │       ├── span_728.json
│   │   │   │       ├── span_729.json
│   │   │   │       ├── span_73.json
│   │   │   │       ├── span_730.json
│   │   │   │       ├── span_731.json
│   │   │   │       ├── span_732.json
│   │   │   │       ├── span_733.json
│   │   │   │       ├── span_734.json
│   │   │   │       ├── span_735.json
│   │   │   │       ├── span_736.json
│   │   │   │       ├── span_737.json
│   │   │   │       ├── span_738.json
│   │   │   │       ├── span_739.json
│   │   │   │       ├── span_74.json
│   │   │   │       ├── span_740.json
│   │   │   │       ├── span_741.json
│   │   │   │       ├── span_742.json
│   │   │   │       ├── span_743.json
│   │   │   │       ├── span_744.json
│   │   │   │       ├── span_745.json
│   │   │   │       ├── span_746.json
│   │   │   │       ├── span_747.json
│   │   │   │       ├── span_748.json
│   │   │   │       ├── span_749.json
│   │   │   │       ├── span_75.json
│   │   │   │       ├── span_750.json
│   │   │   │       ├── span_751.json
│   │   │   │       ├── span_752.json
│   │   │   │       ├── span_753.json
│   │   │   │       ├── span_754.json
│   │   │   │       ├── span_755.json
│   │   │   │       ├── span_756.json
│   │   │   │       ├── span_757.json
│   │   │   │       ├── span_758.json
│   │   │   │       ├── span_759.json
│   │   │   │       ├── span_76.json
│   │   │   │       ├── span_760.json
│   │   │   │       ├── span_761.json
│   │   │   │       ├── span_762.json
│   │   │   │       ├── span_763.json
│   │   │   │       ├── span_764.json
│   │   │   │       ├── span_765.json
│   │   │   │       ├── span_766.json
│   │   │   │       ├── span_767.json
│   │   │   │       ├── span_768.json
│   │   │   │       ├── span_769.json
│   │   │   │       ├── span_77.json
│   │   │   │       ├── span_770.json
│   │   │   │       ├── span_771.json
│   │   │   │       ├── span_772.json
│   │   │   │       ├── span_773.json
│   │   │   │       ├── span_774.json
│   │   │   │       ├── span_775.json
│   │   │   │       ├── span_776.json
│   │   │   │       ├── span_777.json
│   │   │   │       ├── span_778.json
│   │   │   │       ├── span_779.json
│   │   │   │       ├── span_78.json
│   │   │   │       ├── span_780.json
│   │   │   │       ├── span_781.json
│   │   │   │       ├── span_782.json
│   │   │   │       ├── span_783.json
│   │   │   │       ├── span_784.json
│   │   │   │       ├── span_785.json
│   │   │   │       ├── span_786.json
│   │   │   │       ├── span_787.json
│   │   │   │       ├── span_788.json
│   │   │   │       ├── span_789.json
│   │   │   │       ├── span_79.json
│   │   │   │       ├── span_790.json
│   │   │   │       ├── span_791.json
│   │   │   │       ├── span_792.json
│   │   │   │       ├── span_793.json
│   │   │   │       ├── span_794.json
│   │   │   │       ├── span_795.json
│   │   │   │       ├── span_796.json
│   │   │   │       ├── span_797.json
│   │   │   │       ├── span_798.json
│   │   │   │       ├── span_799.json
│   │   │   │       ├── span_8.json
│   │   │   │       ├── span_80.json
│   │   │   │       ├── span_800.json
│   │   │   │       ├── span_801.json
│   │   │   │       ├── span_802.json
│   │   │   │       ├── span_803.json
│   │   │   │       ├── span_804.json
│   │   │   │       ├── span_805.json
│   │   │   │       ├── span_806.json
│   │   │   │       ├── span_807.json
│   │   │   │       ├── span_808.json
│   │   │   │       ├── span_809.json
│   │   │   │       ├── span_81.json
│   │   │   │       ├── span_810.json
│   │   │   │       ├── span_811.json
│   │   │   │       ├── span_812.json
│   │   │   │       ├── span_813.json
│   │   │   │       ├── span_814.json
│   │   │   │       ├── span_815.json
│   │   │   │       ├── span_816.json
│   │   │   │       ├── span_817.json
│   │   │   │       ├── span_818.json
│   │   │   │       ├── span_819.json
│   │   │   │       ├── span_82.json
│   │   │   │       ├── span_820.json
│   │   │   │       ├── span_821.json
│   │   │   │       ├── span_822.json
│   │   │   │       ├── span_823.json
│   │   │   │       ├── span_824.json
│   │   │   │       ├── span_825.json
│   │   │   │       ├── span_826.json
│   │   │   │       ├── span_827.json
│   │   │   │       ├── span_828.json
│   │   │   │       ├── span_829.json
│   │   │   │       ├── span_83.json
│   │   │   │       ├── span_830.json
│   │   │   │       ├── span_831.json
│   │   │   │       ├── span_832.json
│   │   │   │       ├── span_833.json
│   │   │   │       ├── span_834.json
│   │   │   │       ├── span_835.json
│   │   │   │       ├── span_836.json
│   │   │   │       ├── span_837.json
│   │   │   │       ├── span_838.json
│   │   │   │       ├── span_839.json
│   │   │   │       ├── span_84.json
│   │   │   │       ├── span_840.json
│   │   │   │       ├── span_841.json
│   │   │   │       ├── span_842.json
│   │   │   │       ├── span_843.json
│   │   │   │       ├── span_844.json
│   │   │   │       ├── span_845.json
│   │   │   │       ├── span_846.json
│   │   │   │       ├── span_847.json
│   │   │   │       ├── span_848.json
│   │   │   │       ├── span_849.json
│   │   │   │       ├── span_85.json
│   │   │   │       ├── span_850.json
│   │   │   │       ├── span_851.json
│   │   │   │       ├── span_852.json
│   │   │   │       ├── span_853.json
│   │   │   │       ├── span_854.json
│   │   │   │       ├── span_855.json
│   │   │   │       ├── span_856.json
│   │   │   │       ├── span_857.json
│   │   │   │       ├── span_858.json
│   │   │   │       ├── span_859.json
│   │   │   │       ├── span_86.json
│   │   │   │       ├── span_860.json
│   │   │   │       ├── span_861.json
│   │   │   │       ├── span_862.json
│   │   │   │       ├── span_863.json
│   │   │   │       ├── span_864.json
│   │   │   │       ├── span_865.json
│   │   │   │       ├── span_866.json
│   │   │   │       ├── span_867.json
│   │   │   │       ├── span_868.json
│   │   │   │       ├── span_869.json
│   │   │   │       ├── span_87.json
│   │   │   │       ├── span_870.json
│   │   │   │       ├── span_871.json
│   │   │   │       ├── span_872.json
│   │   │   │       ├── span_873.json
│   │   │   │       ├── span_874.json
│   │   │   │       ├── span_875.json
│   │   │   │       ├── span_876.json
│   │   │   │       ├── span_877.json
│   │   │   │       ├── span_878.json
│   │   │   │       ├── span_879.json
│   │   │   │       ├── span_88.json
│   │   │   │       ├── span_880.json
│   │   │   │       ├── span_881.json
│   │   │   │       ├── span_882.json
│   │   │   │       ├── span_883.json
│   │   │   │       ├── span_884.json
│   │   │   │       ├── span_885.json
│   │   │   │       ├── span_886.json
│   │   │   │       ├── span_887.json
│   │   │   │       ├── span_888.json
│   │   │   │       ├── span_889.json
│   │   │   │       ├── span_89.json
│   │   │   │       ├── span_890.json
│   │   │   │       ├── span_891.json
│   │   │   │       ├── span_892.json
│   │   │   │       ├── span_893.json
│   │   │   │       ├── span_894.json
│   │   │   │       ├── span_895.json
│   │   │   │       ├── span_896.json
│   │   │   │       ├── span_897.json
│   │   │   │       ├── span_898.json
│   │   │   │       ├── span_899.json
│   │   │   │       ├── span_9.json
│   │   │   │       ├── span_90.json
│   │   │   │       ├── span_900.json
│   │   │   │       ├── span_901.json
│   │   │   │       ├── span_902.json
│   │   │   │       ├── span_903.json
│   │   │   │       ├── span_904.json
│   │   │   │       ├── span_905.json
│   │   │   │       ├── span_906.json
│   │   │   │       ├── span_907.json
│   │   │   │       ├── span_908.json
│   │   │   │       ├── span_909.json
│   │   │   │       ├── span_91.json
│   │   │   │       ├── span_910.json
│   │   │   │       ├── span_911.json
│   │   │   │       ├── span_912.json
│   │   │   │       ├── span_913.json
│   │   │   │       ├── span_914.json
│   │   │   │       ├── span_915.json
│   │   │   │       ├── span_916.json
│   │   │   │       ├── span_917.json
│   │   │   │       ├── span_918.json
│   │   │   │       ├── span_919.json
│   │   │   │       ├── span_92.json
│   │   │   │       ├── span_920.json
│   │   │   │       ├── span_921.json
│   │   │   │       ├── span_922.json
│   │   │   │       ├── span_923.json
│   │   │   │       ├── span_924.json
│   │   │   │       ├── span_925.json
│   │   │   │       ├── span_926.json
│   │   │   │       ├── span_927.json
│   │   │   │       ├── span_928.json
│   │   │   │       ├── span_929.json
│   │   │   │       ├── span_93.json
│   │   │   │       ├── span_930.json
│   │   │   │       ├── span_931.json
│   │   │   │       ├── span_932.json
│   │   │   │       ├── span_933.json
│   │   │   │       ├── span_934.json
│   │   │   │       ├── span_935.json
│   │   │   │       ├── span_936.json
│   │   │   │       ├── span_937.json
│   │   │   │       ├── span_938.json
│   │   │   │       ├── span_939.json
│   │   │   │       ├── span_94.json
│   │   │   │       ├── span_940.json
│   │   │   │       ├── span_941.json
│   │   │   │       ├── span_942.json
│   │   │   │       ├── span_943.json
│   │   │   │       ├── span_944.json
│   │   │   │       ├── span_945.json
│   │   │   │       ├── span_946.json
│   │   │   │       ├── span_947.json
│   │   │   │       ├── span_948.json
│   │   │   │       ├── span_949.json
│   │   │   │       ├── span_95.json
│   │   │   │       ├── span_950.json
│   │   │   │       ├── span_951.json
│   │   │   │       ├── span_952.json
│   │   │   │       ├── span_953.json
│   │   │   │       ├── span_954.json
│   │   │   │       ├── span_955.json
│   │   │   │       ├── span_956.json
│   │   │   │       ├── span_957.json
│   │   │   │       ├── span_958.json
│   │   │   │       ├── span_959.json
│   │   │   │       ├── span_96.json
│   │   │   │       ├── span_960.json
│   │   │   │       ├── span_961.json
│   │   │   │       ├── span_962.json
│   │   │   │       ├── span_963.json
│   │   │   │       ├── span_964.json
│   │   │   │       ├── span_965.json
│   │   │   │       ├── span_966.json
│   │   │   │       ├── span_967.json
│   │   │   │       ├── span_968.json
│   │   │   │       ├── span_969.json
│   │   │   │       ├── span_97.json
│   │   │   │       ├── span_970.json
│   │   │   │       ├── span_971.json
│   │   │   │       ├── span_972.json
│   │   │   │       ├── span_973.json
│   │   │   │       ├── span_974.json
│   │   │   │       ├── span_975.json
│   │   │   │       ├── span_976.json
│   │   │   │       ├── span_977.json
│   │   │   │       ├── span_978.json
│   │   │   │       ├── span_979.json
│   │   │   │       ├── span_98.json
│   │   │   │       ├── span_980.json
│   │   │   │       ├── span_981.json
│   │   │   │       ├── span_982.json
│   │   │   │       ├── span_983.json
│   │   │   │       ├── span_984.json
│   │   │   │       ├── span_985.json
│   │   │   │       ├── span_986.json
│   │   │   │       ├── span_987.json
│   │   │   │       ├── span_988.json
│   │   │   │       ├── span_989.json
│   │   │   │       ├── span_99.json
│   │   │   │       ├── span_990.json
│   │   │   │       ├── span_991.json
│   │   │   │       ├── span_992.json
│   │   │   │       ├── span_993.json
│   │   │   │       ├── span_994.json
│   │   │   │       ├── span_995.json
│   │   │   │       ├── span_996.json
│   │   │   │       ├── span_997.json
│   │   │   │       ├── span_998.json
│   │   │   │       └── span_999.json
│   │   │   └── mainnet/
│   │   │       ├── checkpoints/
│   │   │       │   └── checkpoint_1.json
│   │   │       ├── getSnapshotProposerSequence/
│   │   │       │   ├── blockNum_1.json
│   │   │       │   ├── blockNum_10000000.json
│   │   │       │   ├── blockNum_12000000.json
│   │   │       │   ├── blockNum_13000000.json
│   │   │       │   ├── blockNum_14000000.json
│   │   │       │   ├── blockNum_14250000.json
│   │   │       │   ├── blockNum_14300000.json
│   │   │       │   ├── blockNum_14323456.json
│   │   │       │   ├── blockNum_14323520.json
│   │   │       │   ├── blockNum_14323584.json
│   │   │       │   ├── blockNum_14325000.json
│   │   │       │   ├── blockNum_14329854.json
│   │   │       │   ├── blockNum_14329855.json
│   │   │       │   ├── blockNum_14329856.json
│   │   │       │   ├── blockNum_14337500.json
│   │   │       │   ├── blockNum_14350000.json
│   │   │       │   ├── blockNum_14375000.json
│   │   │       │   ├── blockNum_14500000.json
│   │   │       │   ├── blockNum_15000000.json
│   │   │       │   ├── blockNum_16.json
│   │   │       │   ├── blockNum_255.json
│   │   │       │   ├── blockNum_256.json
│   │   │       │   ├── blockNum_7000.json
│   │   │       │   ├── blockNum_8173056.json
│   │   │       │   └── blockNum_8192255.json
│   │   │       ├── milestones/
│   │   │       │   └── milestone_453496.json
│   │   │       └── spans/
│   │   │           ├── span_0.json
│   │   │           ├── span_1.json
│   │   │           ├── span_10.json
│   │   │           ├── span_100.json
│   │   │           ├── span_1000.json
│   │   │           ├── span_1001.json
│   │   │           ├── span_1002.json
│   │   │           ├── span_1003.json
│   │   │           ├── span_1004.json
│   │   │           ├── span_1005.json
│   │   │           ├── span_1006.json
│   │   │           ├── span_1007.json
│   │   │           ├── span_1008.json
│   │   │           ├── span_1009.json
│   │   │           ├── span_101.json
│   │   │           ├── span_1010.json
│   │   │           ├── span_1011.json
│   │   │           ├── span_1012.json
│   │   │           ├── span_1013.json
│   │   │           ├── span_1014.json
│   │   │           ├── span_1015.json
│   │   │           ├── span_1016.json
│   │   │           ├── span_1017.json
│   │   │           ├── span_1018.json
│   │   │           ├── span_1019.json
│   │   │           ├── span_102.json
│   │   │           ├── span_1020.json
│   │   │           ├── span_1021.json
│   │   │           ├── span_1022.json
│   │   │           ├── span_1023.json
│   │   │           ├── span_1024.json
│   │   │           ├── span_1025.json
│   │   │           ├── span_1026.json
│   │   │           ├── span_1027.json
│   │   │           ├── span_1028.json
│   │   │           ├── span_1029.json
│   │   │           ├── span_103.json
│   │   │           ├── span_1030.json
│   │   │           ├── span_1031.json
│   │   │           ├── span_1032.json
│   │   │           ├── span_1033.json
│   │   │           ├── span_1034.json
│   │   │           ├── span_1035.json
│   │   │           ├── span_1036.json
│   │   │           ├── span_1037.json
│   │   │           ├── span_1038.json
│   │   │           ├── span_1039.json
│   │   │           ├── span_104.json
│   │   │           ├── span_1040.json
│   │   │           ├── span_1041.json
│   │   │           ├── span_1042.json
│   │   │           ├── span_1043.json
│   │   │           ├── span_1044.json
│   │   │           ├── span_1045.json
│   │   │           ├── span_1046.json
│   │   │           ├── span_1047.json
│   │   │           ├── span_1048.json
│   │   │           ├── span_1049.json
│   │   │           ├── span_105.json
│   │   │           ├── span_1050.json
│   │   │           ├── span_1051.json
│   │   │           ├── span_1052.json
│   │   │           ├── span_1053.json
│   │   │           ├── span_1054.json
│   │   │           ├── span_1055.json
│   │   │           ├── span_1056.json
│   │   │           ├── span_1057.json
│   │   │           ├── span_1058.json
│   │   │           ├── span_1059.json
│   │   │           ├── span_106.json
│   │   │           ├── span_1060.json
│   │   │           ├── span_1061.json
│   │   │           ├── span_1062.json
│   │   │           ├── span_1063.json
│   │   │           ├── span_1064.json
│   │   │           ├── span_1065.json
│   │   │           ├── span_1066.json
│   │   │           ├── span_1067.json
│   │   │           ├── span_1068.json
│   │   │           ├── span_1069.json
│   │   │           ├── span_107.json
│   │   │           ├── span_1070.json
│   │   │           ├── span_1071.json
│   │   │           ├── span_1072.json
│   │   │           ├── span_1073.json
│   │   │           ├── span_1074.json
│   │   │           ├── span_1075.json
│   │   │           ├── span_1076.json
│   │   │           ├── span_1077.json
│   │   │           ├── span_1078.json
│   │   │           ├── span_1079.json
│   │   │           ├── span_108.json
│   │   │           ├── span_1080.json
│   │   │           ├── span_1081.json
│   │   │           ├── span_1082.json
│   │   │           ├── span_1083.json
│   │   │           ├── span_1084.json
│   │   │           ├── span_1085.json
│   │   │           ├── span_1086.json
│   │   │           ├── span_1087.json
│   │   │           ├── span_1088.json
│   │   │           ├── span_1089.json
│   │   │           ├── span_109.json
│   │   │           ├── span_1090.json
│   │   │           ├── span_1091.json
│   │   │           ├── span_1092.json
│   │   │           ├── span_1093.json
│   │   │           ├── span_1094.json
│   │   │           ├── span_1095.json
│   │   │           ├── span_1096.json
│   │   │           ├── span_1097.json
│   │   │           ├── span_1098.json
│   │   │           ├── span_1099.json
│   │   │           ├── span_11.json
│   │   │           ├── span_110.json
│   │   │           ├── span_1100.json
│   │   │           ├── span_1101.json
│   │   │           ├── span_1102.json
│   │   │           ├── span_1103.json
│   │   │           ├── span_1104.json
│   │   │           ├── span_1105.json
│   │   │           ├── span_1106.json
│   │   │           ├── span_1107.json
│   │   │           ├── span_1108.json
│   │   │           ├── span_1109.json
│   │   │           ├── span_111.json
│   │   │           ├── span_1110.json
│   │   │           ├── span_1111.json
│   │   │           ├── span_1112.json
│   │   │           ├── span_1113.json
│   │   │           ├── span_1114.json
│   │   │           ├── span_1115.json
│   │   │           ├── span_1116.json
│   │   │           ├── span_1117.json
│   │   │           ├── span_1118.json
│   │   │           ├── span_1119.json
│   │   │           ├── span_112.json
│   │   │           ├── span_1120.json
│   │   │           ├── span_1121.json
│   │   │           ├── span_1122.json
│   │   │           ├── span_1123.json
│   │   │           ├── span_1124.json
│   │   │           ├── span_1125.json
│   │   │           ├── span_1126.json
│   │   │           ├── span_1127.json
│   │   │           ├── span_1128.json
│   │   │           ├── span_1129.json
│   │   │           ├── span_113.json
│   │   │           ├── span_1130.json
│   │   │           ├── span_1131.json
│   │   │           ├── span_1132.json
│   │   │           ├── span_1133.json
│   │   │           ├── span_1134.json
│   │   │           ├── span_1135.json
│   │   │           ├── span_1136.json
│   │   │           ├── span_1137.json
│   │   │           ├── span_1138.json
│   │   │           ├── span_1139.json
│   │   │           ├── span_114.json
│   │   │           ├── span_1140.json
│   │   │           ├── span_1141.json
│   │   │           ├── span_1142.json
│   │   │           ├── span_1143.json
│   │   │           ├── span_1144.json
│   │   │           ├── span_1145.json
│   │   │           ├── span_1146.json
│   │   │           ├── span_1147.json
│   │   │           ├── span_1148.json
│   │   │           ├── span_1149.json
│   │   │           ├── span_115.json
│   │   │           ├── span_1150.json
│   │   │           ├── span_1151.json
│   │   │           ├── span_1152.json
│   │   │           ├── span_1153.json
│   │   │           ├── span_1154.json
│   │   │           ├── span_1155.json
│   │   │           ├── span_1156.json
│   │   │           ├── span_1157.json
│   │   │           ├── span_1158.json
│   │   │           ├── span_1159.json
│   │   │           ├── span_116.json
│   │   │           ├── span_1160.json
│   │   │           ├── span_1161.json
│   │   │           ├── span_1162.json
│   │   │           ├── span_1163.json
│   │   │           ├── span_1164.json
│   │   │           ├── span_1165.json
│   │   │           ├── span_1166.json
│   │   │           ├── span_1167.json
│   │   │           ├── span_1168.json
│   │   │           ├── span_1169.json
│   │   │           ├── span_117.json
│   │   │           ├── span_1170.json
│   │   │           ├── span_1171.json
│   │   │           ├── span_1172.json
│   │   │           ├── span_1173.json
│   │   │           ├── span_1174.json
│   │   │           ├── span_1175.json
│   │   │           ├── span_1176.json
│   │   │           ├── span_1177.json
│   │   │           ├── span_1178.json
│   │   │           ├── span_1179.json
│   │   │           ├── span_118.json
│   │   │           ├── span_1180.json
│   │   │           ├── span_1181.json
│   │   │           ├── span_1182.json
│   │   │           ├── span_1183.json
│   │   │           ├── span_1184.json
│   │   │           ├── span_1185.json
│   │   │           ├── span_1186.json
│   │   │           ├── span_1187.json
│   │   │           ├── span_1188.json
│   │   │           ├── span_1189.json
│   │   │           ├── span_119.json
│   │   │           ├── span_1190.json
│   │   │           ├── span_1191.json
│   │   │           ├── span_1192.json
│   │   │           ├── span_1193.json
│   │   │           ├── span_1194.json
│   │   │           ├── span_1195.json
│   │   │           ├── span_1196.json
│   │   │           ├── span_1197.json
│   │   │           ├── span_1198.json
│   │   │           ├── span_1199.json
│   │   │           ├── span_12.json
│   │   │           ├── span_120.json
│   │   │           ├── span_1200.json
│   │   │           ├── span_1201.json
│   │   │           ├── span_1202.json
│   │   │           ├── span_1203.json
│   │   │           ├── span_1204.json
│   │   │           ├── span_1205.json
│   │   │           ├── span_1206.json
│   │   │           ├── span_1207.json
│   │   │           ├── span_1208.json
│   │   │           ├── span_1209.json
│   │   │           ├── span_121.json
│   │   │           ├── span_1210.json
│   │   │           ├── span_1211.json
│   │   │           ├── span_1212.json
│   │   │           ├── span_1213.json
│   │   │           ├── span_1214.json
│   │   │           ├── span_1215.json
│   │   │           ├── span_1216.json
│   │   │           ├── span_1217.json
│   │   │           ├── span_1218.json
│   │   │           ├── span_1219.json
│   │   │           ├── span_122.json
│   │   │           ├── span_1220.json
│   │   │           ├── span_1221.json
│   │   │           ├── span_1222.json
│   │   │           ├── span_1223.json
│   │   │           ├── span_1224.json
│   │   │           ├── span_1225.json
│   │   │           ├── span_1226.json
│   │   │           ├── span_1227.json
│   │   │           ├── span_1228.json
│   │   │           ├── span_1229.json
│   │   │           ├── span_123.json
│   │   │           ├── span_1230.json
│   │   │           ├── span_1231.json
│   │   │           ├── span_1232.json
│   │   │           ├── span_1233.json
│   │   │           ├── span_1234.json
│   │   │           ├── span_1235.json
│   │   │           ├── span_1236.json
│   │   │           ├── span_1237.json
│   │   │           ├── span_1238.json
│   │   │           ├── span_1239.json
│   │   │           ├── span_124.json
│   │   │           ├── span_1240.json
│   │   │           ├── span_1241.json
│   │   │           ├── span_1242.json
│   │   │           ├── span_1243.json
│   │   │           ├── span_1244.json
│   │   │           ├── span_1245.json
│   │   │           ├── span_1246.json
│   │   │           ├── span_1247.json
│   │   │           ├── span_1248.json
│   │   │           ├── span_1249.json
│   │   │           ├── span_125.json
│   │   │           ├── span_1250.json
│   │   │           ├── span_1251.json
│   │   │           ├── span_1252.json
│   │   │           ├── span_1253.json
│   │   │           ├── span_1254.json
│   │   │           ├── span_1255.json
│   │   │           ├── span_1256.json
│   │   │           ├── span_1257.json
│   │   │           ├── span_1258.json
│   │   │           ├── span_1259.json
│   │   │           ├── span_126.json
│   │   │           ├── span_1260.json
│   │   │           ├── span_1261.json
│   │   │           ├── span_1262.json
│   │   │           ├── span_1263.json
│   │   │           ├── span_1264.json
│   │   │           ├── span_1265.json
│   │   │           ├── span_1266.json
│   │   │           ├── span_1267.json
│   │   │           ├── span_1268.json
│   │   │           ├── span_1269.json
│   │   │           ├── span_127.json
│   │   │           ├── span_1270.json
│   │   │           ├── span_1271.json
│   │   │           ├── span_1272.json
│   │   │           ├── span_1273.json
│   │   │           ├── span_1274.json
│   │   │           ├── span_1275.json
│   │   │           ├── span_1276.json
│   │   │           ├── span_1277.json
│   │   │           ├── span_1278.json
│   │   │           ├── span_1279.json
│   │   │           ├── span_128.json
│   │   │           ├── span_1280.json
│   │   │           ├── span_1281.json
│   │   │           ├── span_1282.json
│   │   │           ├── span_1283.json
│   │   │           ├── span_1284.json
│   │   │           ├── span_1285.json
│   │   │           ├── span_1286.json
│   │   │           ├── span_1287.json
│   │   │           ├── span_1288.json
│   │   │           ├── span_1289.json
│   │   │           ├── span_129.json
│   │   │           ├── span_1290.json
│   │   │           ├── span_1291.json
│   │   │           ├── span_1292.json
│   │   │           ├── span_1293.json
│   │   │           ├── span_1294.json
│   │   │           ├── span_1295.json
│   │   │           ├── span_1296.json
│   │   │           ├── span_1297.json
│   │   │           ├── span_1298.json
│   │   │           ├── span_1299.json
│   │   │           ├── span_13.json
│   │   │           ├── span_130.json
│   │   │           ├── span_1300.json
│   │   │           ├── span_1301.json
│   │   │           ├── span_1302.json
│   │   │           ├── span_1303.json
│   │   │           ├── span_1304.json
│   │   │           ├── span_1305.json
│   │   │           ├── span_1306.json
│   │   │           ├── span_1307.json
│   │   │           ├── span_1308.json
│   │   │           ├── span_1309.json
│   │   │           ├── span_131.json
│   │   │           ├── span_1310.json
│   │   │           ├── span_1311.json
│   │   │           ├── span_1312.json
│   │   │           ├── span_1313.json
│   │   │           ├── span_1314.json
│   │   │           ├── span_1315.json
│   │   │           ├── span_1316.json
│   │   │           ├── span_1317.json
│   │   │           ├── span_1318.json
│   │   │           ├── span_1319.json
│   │   │           ├── span_132.json
│   │   │           ├── span_1320.json
│   │   │           ├── span_1321.json
│   │   │           ├── span_1322.json
│   │   │           ├── span_1323.json
│   │   │           ├── span_1324.json
│   │   │           ├── span_1325.json
│   │   │           ├── span_1326.json
│   │   │           ├── span_1327.json
│   │   │           ├── span_1328.json
│   │   │           ├── span_1329.json
│   │   │           ├── span_133.json
│   │   │           ├── span_1330.json
│   │   │           ├── span_1331.json
│   │   │           ├── span_1332.json
│   │   │           ├── span_1333.json
│   │   │           ├── span_1334.json
│   │   │           ├── span_1335.json
│   │   │           ├── span_1336.json
│   │   │           ├── span_1337.json
│   │   │           ├── span_1338.json
│   │   │           ├── span_1339.json
│   │   │           ├── span_134.json
│   │   │           ├── span_1340.json
│   │   │           ├── span_1341.json
│   │   │           ├── span_1342.json
│   │   │           ├── span_1343.json
│   │   │           ├── span_1344.json
│   │   │           ├── span_1345.json
│   │   │           ├── span_1346.json
│   │   │           ├── span_1347.json
│   │   │           ├── span_1348.json
│   │   │           ├── span_1349.json
│   │   │           ├── span_135.json
│   │   │           ├── span_1350.json
│   │   │           ├── span_1351.json
│   │   │           ├── span_1352.json
│   │   │           ├── span_1353.json
│   │   │           ├── span_1354.json
│   │   │           ├── span_1355.json
│   │   │           ├── span_1356.json
│   │   │           ├── span_1357.json
│   │   │           ├── span_1358.json
│   │   │           ├── span_1359.json
│   │   │           ├── span_136.json
│   │   │           ├── span_1360.json
│   │   │           ├── span_1361.json
│   │   │           ├── span_1362.json
│   │   │           ├── span_1363.json
│   │   │           ├── span_1364.json
│   │   │           ├── span_1365.json
│   │   │           ├── span_1366.json
│   │   │           ├── span_1367.json
│   │   │           ├── span_1368.json
│   │   │           ├── span_1369.json
│   │   │           ├── span_137.json
│   │   │           ├── span_1370.json
│   │   │           ├── span_1371.json
│   │   │           ├── span_1372.json
│   │   │           ├── span_1373.json
│   │   │           ├── span_1374.json
│   │   │           ├── span_1375.json
│   │   │           ├── span_1376.json
│   │   │           ├── span_1377.json
│   │   │           ├── span_1378.json
│   │   │           ├── span_1379.json
│   │   │           ├── span_138.json
│   │   │           ├── span_1380.json
│   │   │           ├── span_1381.json
│   │   │           ├── span_1382.json
│   │   │           ├── span_1383.json
│   │   │           ├── span_1384.json
│   │   │           ├── span_1385.json
│   │   │           ├── span_1386.json
│   │   │           ├── span_1387.json
│   │   │           ├── span_1388.json
│   │   │           ├── span_1389.json
│   │   │           ├── span_139.json
│   │   │           ├── span_1390.json
│   │   │           ├── span_1391.json
│   │   │           ├── span_1392.json
│   │   │           ├── span_1393.json
│   │   │           ├── span_1394.json
│   │   │           ├── span_1395.json
│   │   │           ├── span_1396.json
│   │   │           ├── span_1397.json
│   │   │           ├── span_1398.json
│   │   │           ├── span_1399.json
│   │   │           ├── span_14.json
│   │   │           ├── span_140.json
│   │   │           ├── span_1400.json
│   │   │           ├── span_1401.json
│   │   │           ├── span_1402.json
│   │   │           ├── span_1403.json
│   │   │           ├── span_1404.json
│   │   │           ├── span_1405.json
│   │   │           ├── span_1406.json
│   │   │           ├── span_1407.json
│   │   │           ├── span_1408.json
│   │   │           ├── span_1409.json
│   │   │           ├── span_141.json
│   │   │           ├── span_1410.json
│   │   │           ├── span_1411.json
│   │   │           ├── span_1412.json
│   │   │           ├── span_1413.json
│   │   │           ├── span_1414.json
│   │   │           ├── span_1415.json
│   │   │           ├── span_1416.json
│   │   │           ├── span_1417.json
│   │   │           ├── span_1418.json
│   │   │           ├── span_1419.json
│   │   │           ├── span_142.json
│   │   │           ├── span_1420.json
│   │   │           ├── span_1421.json
│   │   │           ├── span_1422.json
│   │   │           ├── span_1423.json
│   │   │           ├── span_1424.json
│   │   │           ├── span_1425.json
│   │   │           ├── span_1426.json
│   │   │           ├── span_1427.json
│   │   │           ├── span_1428.json
│   │   │           ├── span_1429.json
│   │   │           ├── span_143.json
│   │   │           ├── span_1430.json
│   │   │           ├── span_1431.json
│   │   │           ├── span_1432.json
│   │   │           ├── span_1433.json
│   │   │           ├── span_1434.json
│   │   │           ├── span_1435.json
│   │   │           ├── span_1436.json
│   │   │           ├── span_1437.json
│   │   │           ├── span_1438.json
│   │   │           ├── span_1439.json
│   │   │           ├── span_144.json
│   │   │           ├── span_1440.json
│   │   │           ├── span_1441.json
│   │   │           ├── span_1442.json
│   │   │           ├── span_1443.json
│   │   │           ├── span_1444.json
│   │   │           ├── span_1445.json
│   │   │           ├── span_1446.json
│   │   │           ├── span_1447.json
│   │   │           ├── span_1448.json
│   │   │           ├── span_1449.json
│   │   │           ├── span_145.json
│   │   │           ├── span_1450.json
│   │   │           ├── span_1451.json
│   │   │           ├── span_1452.json
│   │   │           ├── span_1453.json
│   │   │           ├── span_1454.json
│   │   │           ├── span_1455.json
│   │   │           ├── span_1456.json
│   │   │           ├── span_1457.json
│   │   │           ├── span_1458.json
│   │   │           ├── span_1459.json
│   │   │           ├── span_146.json
│   │   │           ├── span_1460.json
│   │   │           ├── span_1461.json
│   │   │           ├── span_1462.json
│   │   │           ├── span_1463.json
│   │   │           ├── span_1464.json
│   │   │           ├── span_1465.json
│   │   │           ├── span_1466.json
│   │   │           ├── span_1467.json
│   │   │           ├── span_1468.json
│   │   │           ├── span_1469.json
│   │   │           ├── span_147.json
│   │   │           ├── span_1470.json
│   │   │           ├── span_1471.json
│   │   │           ├── span_1472.json
│   │   │           ├── span_1473.json
│   │   │           ├── span_1474.json
│   │   │           ├── span_1475.json
│   │   │           ├── span_1476.json
│   │   │           ├── span_1477.json
│   │   │           ├── span_1478.json
│   │   │           ├── span_1479.json
│   │   │           ├── span_148.json
│   │   │           ├── span_1480.json
│   │   │           ├── span_1481.json
│   │   │           ├── span_1482.json
│   │   │           ├── span_1483.json
│   │   │           ├── span_1484.json
│   │   │           ├── span_1485.json
│   │   │           ├── span_1486.json
│   │   │           ├── span_1487.json
│   │   │           ├── span_1488.json
│   │   │           ├── span_1489.json
│   │   │           ├── span_149.json
│   │   │           ├── span_1490.json
│   │   │           ├── span_1491.json
│   │   │           ├── span_1492.json
│   │   │           ├── span_1493.json
│   │   │           ├── span_1494.json
│   │   │           ├── span_1495.json
│   │   │           ├── span_1496.json
│   │   │           ├── span_1497.json
│   │   │           ├── span_1498.json
│   │   │           ├── span_1499.json
│   │   │           ├── span_15.json
│   │   │           ├── span_150.json
│   │   │           ├── span_1500.json
│   │   │           ├── span_1501.json
│   │   │           ├── span_1502.json
│   │   │           ├── span_1503.json
│   │   │           ├── span_1504.json
│   │   │           ├── span_1505.json
│   │   │           ├── span_1506.json
│   │   │           ├── span_1507.json
│   │   │           ├── span_1508.json
│   │   │           ├── span_1509.json
│   │   │           ├── span_151.json
│   │   │           ├── span_1510.json
│   │   │           ├── span_1511.json
│   │   │           ├── span_1512.json
│   │   │           ├── span_1513.json
│   │   │           ├── span_1514.json
│   │   │           ├── span_1515.json
│   │   │           ├── span_1516.json
│   │   │           ├── span_1517.json
│   │   │           ├── span_1518.json
│   │   │           ├── span_1519.json
│   │   │           ├── span_152.json
│   │   │           ├── span_1520.json
│   │   │           ├── span_1521.json
│   │   │           ├── span_1522.json
│   │   │           ├── span_1523.json
│   │   │           ├── span_1524.json
│   │   │           ├── span_1525.json
│   │   │           ├── span_1526.json
│   │   │           ├── span_1527.json
│   │   │           ├── span_1528.json
│   │   │           ├── span_1529.json
│   │   │           ├── span_153.json
│   │   │           ├── span_1530.json
│   │   │           ├── span_1531.json
│   │   │           ├── span_1532.json
│   │   │           ├── span_1533.json
│   │   │           ├── span_1534.json
│   │   │           ├── span_1535.json
│   │   │           ├── span_1536.json
│   │   │           ├── span_1537.json
│   │   │           ├── span_1538.json
│   │   │           ├── span_1539.json
│   │   │           ├── span_154.json
│   │   │           ├── span_1540.json
│   │   │           ├── span_1541.json
│   │   │           ├── span_1542.json
│   │   │           ├── span_1543.json
│   │   │           ├── span_1544.json
│   │   │           ├── span_1545.json
│   │   │           ├── span_1546.json
│   │   │           ├── span_1547.json
│   │   │           ├── span_1548.json
│   │   │           ├── span_1549.json
│   │   │           ├── span_155.json
│   │   │           ├── span_1550.json
│   │   │           ├── span_1551.json
│   │   │           ├── span_1552.json
│   │   │           ├── span_1553.json
│   │   │           ├── span_1554.json
│   │   │           ├── span_1555.json
│   │   │           ├── span_1556.json
│   │   │           ├── span_1557.json
│   │   │           ├── span_1558.json
│   │   │           ├── span_1559.json
│   │   │           ├── span_156.json
│   │   │           ├── span_1560.json
│   │   │           ├── span_1561.json
│   │   │           ├── span_1562.json
│   │   │           ├── span_1563.json
│   │   │           ├── span_1564.json
│   │   │           ├── span_1565.json
│   │   │           ├── span_1566.json
│   │   │           ├── span_1567.json
│   │   │           ├── span_1568.json
│   │   │           ├── span_1569.json
│   │   │           ├── span_157.json
│   │   │           ├── span_1570.json
│   │   │           ├── span_1571.json
│   │   │           ├── span_1572.json
│   │   │           ├── span_1573.json
│   │   │           ├── span_1574.json
│   │   │           ├── span_1575.json
│   │   │           ├── span_1576.json
│   │   │           ├── span_1577.json
│   │   │           ├── span_1578.json
│   │   │           ├── span_1579.json
│   │   │           ├── span_158.json
│   │   │           ├── span_1580.json
│   │   │           ├── span_1581.json
│   │   │           ├── span_1582.json
│   │   │           ├── span_1583.json
│   │   │           ├── span_1584.json
│   │   │           ├── span_1585.json
│   │   │           ├── span_1586.json
│   │   │           ├── span_1587.json
│   │   │           ├── span_1588.json
│   │   │           ├── span_1589.json
│   │   │           ├── span_159.json
│   │   │           ├── span_1590.json
│   │   │           ├── span_1591.json
│   │   │           ├── span_1592.json
│   │   │           ├── span_1593.json
│   │   │           ├── span_1594.json
│   │   │           ├── span_1595.json
│   │   │           ├── span_1596.json
│   │   │           ├── span_1597.json
│   │   │           ├── span_1598.json
│   │   │           ├── span_1599.json
│   │   │           ├── span_16.json
│   │   │           ├── span_160.json
│   │   │           ├── span_1600.json
│   │   │           ├── span_1601.json
│   │   │           ├── span_1602.json
│   │   │           ├── span_1603.json
│   │   │           ├── span_1604.json
│   │   │           ├── span_1605.json
│   │   │           ├── span_1606.json
│   │   │           ├── span_1607.json
│   │   │           ├── span_1608.json
│   │   │           ├── span_1609.json
│   │   │           ├── span_161.json
│   │   │           ├── span_1610.json
│   │   │           ├── span_1611.json
│   │   │           ├── span_1612.json
│   │   │           ├── span_1613.json
│   │   │           ├── span_1614.json
│   │   │           ├── span_1615.json
│   │   │           ├── span_1616.json
│   │   │           ├── span_1617.json
│   │   │           ├── span_1618.json
│   │   │           ├── span_1619.json
│   │   │           ├── span_162.json
│   │   │           ├── span_1620.json
│   │   │           ├── span_1621.json
│   │   │           ├── span_1622.json
│   │   │           ├── span_1623.json
│   │   │           ├── span_1624.json
│   │   │           ├── span_1625.json
│   │   │           ├── span_1626.json
│   │   │           ├── span_1627.json
│   │   │           ├── span_1628.json
│   │   │           ├── span_1629.json
│   │   │           ├── span_163.json
│   │   │           ├── span_1630.json
│   │   │           ├── span_1631.json
│   │   │           ├── span_1632.json
│   │   │           ├── span_1633.json
│   │   │           ├── span_1634.json
│   │   │           ├── span_1635.json
│   │   │           ├── span_1636.json
│   │   │           ├── span_1637.json
│   │   │           ├── span_1638.json
│   │   │           ├── span_1639.json
│   │   │           ├── span_164.json
│   │   │           ├── span_1640.json
│   │   │           ├── span_1641.json
│   │   │           ├── span_1642.json
│   │   │           ├── span_1643.json
│   │   │           ├── span_1644.json
│   │   │           ├── span_1645.json
│   │   │           ├── span_1646.json
│   │   │           ├── span_1647.json
│   │   │           ├── span_1648.json
│   │   │           ├── span_1649.json
│   │   │           ├── span_165.json
│   │   │           ├── span_1650.json
│   │   │           ├── span_1651.json
│   │   │           ├── span_1652.json
│   │   │           ├── span_1653.json
│   │   │           ├── span_1654.json
│   │   │           ├── span_1655.json
│   │   │           ├── span_1656.json
│   │   │           ├── span_1657.json
│   │   │           ├── span_1658.json
│   │   │           ├── span_1659.json
│   │   │           ├── span_166.json
│   │   │           ├── span_1660.json
│   │   │           ├── span_1661.json
│   │   │           ├── span_1662.json
│   │   │           ├── span_1663.json
│   │   │           ├── span_1664.json
│   │   │           ├── span_1665.json
│   │   │           ├── span_1666.json
│   │   │           ├── span_1667.json
│   │   │           ├── span_1668.json
│   │   │           ├── span_1669.json
│   │   │           ├── span_167.json
│   │   │           ├── span_1670.json
│   │   │           ├── span_1671.json
│   │   │           ├── span_1672.json
│   │   │           ├── span_1673.json
│   │   │           ├── span_1674.json
│   │   │           ├── span_1675.json
│   │   │           ├── span_1676.json
│   │   │           ├── span_1677.json
│   │   │           ├── span_1678.json
│   │   │           ├── span_1679.json
│   │   │           ├── span_168.json
│   │   │           ├── span_1680.json
│   │   │           ├── span_1681.json
│   │   │           ├── span_1682.json
│   │   │           ├── span_1683.json
│   │   │           ├── span_1684.json
│   │   │           ├── span_1685.json
│   │   │           ├── span_1686.json
│   │   │           ├── span_1687.json
│   │   │           ├── span_1688.json
│   │   │           ├── span_1689.json
│   │   │           ├── span_169.json
│   │   │           ├── span_1690.json
│   │   │           ├── span_1691.json
│   │   │           ├── span_1692.json
│   │   │           ├── span_1693.json
│   │   │           ├── span_1694.json
│   │   │           ├── span_1695.json
│   │   │           ├── span_1696.json
│   │   │           ├── span_1697.json
│   │   │           ├── span_1698.json
│   │   │           ├── span_1699.json
│   │   │           ├── span_17.json
│   │   │           ├── span_170.json
│   │   │           ├── span_1700.json
│   │   │           ├── span_1701.json
│   │   │           ├── span_1702.json
│   │   │           ├── span_1703.json
│   │   │           ├── span_1704.json
│   │   │           ├── span_1705.json
│   │   │           ├── span_1706.json
│   │   │           ├── span_1707.json
│   │   │           ├── span_1708.json
│   │   │           ├── span_1709.json
│   │   │           ├── span_171.json
│   │   │           ├── span_1710.json
│   │   │           ├── span_1711.json
│   │   │           ├── span_1712.json
│   │   │           ├── span_1713.json
│   │   │           ├── span_1714.json
│   │   │           ├── span_1715.json
│   │   │           ├── span_1716.json
│   │   │           ├── span_1717.json
│   │   │           ├── span_1718.json
│   │   │           ├── span_1719.json
│   │   │           ├── span_172.json
│   │   │           ├── span_1720.json
│   │   │           ├── span_1721.json
│   │   │           ├── span_1722.json
│   │   │           ├── span_1723.json
│   │   │           ├── span_1724.json
│   │   │           ├── span_1725.json
│   │   │           ├── span_1726.json
│   │   │           ├── span_1727.json
│   │   │           ├── span_1728.json
│   │   │           ├── span_1729.json
│   │   │           ├── span_173.json
│   │   │           ├── span_1730.json
│   │   │           ├── span_1731.json
│   │   │           ├── span_1732.json
│   │   │           ├── span_1733.json
│   │   │           ├── span_1734.json
│   │   │           ├── span_1735.json
│   │   │           ├── span_1736.json
│   │   │           ├── span_1737.json
│   │   │           ├── span_1738.json
│   │   │           ├── span_1739.json
│   │   │           ├── span_174.json
│   │   │           ├── span_1740.json
│   │   │           ├── span_1741.json
│   │   │           ├── span_1742.json
│   │   │           ├── span_1743.json
│   │   │           ├── span_1744.json
│   │   │           ├── span_1745.json
│   │   │           ├── span_1746.json
│   │   │           ├── span_1747.json
│   │   │           ├── span_1748.json
│   │   │           ├── span_1749.json
│   │   │           ├── span_175.json
│   │   │           ├── span_1750.json
│   │   │           ├── span_1751.json
│   │   │           ├── span_1752.json
│   │   │           ├── span_1753.json
│   │   │           ├── span_1754.json
│   │   │           ├── span_1755.json
│   │   │           ├── span_1756.json
│   │   │           ├── span_1757.json
│   │   │           ├── span_1758.json
│   │   │           ├── span_1759.json
│   │   │           ├── span_176.json
│   │   │           ├── span_1760.json
│   │   │           ├── span_1761.json
│   │   │           ├── span_1762.json
│   │   │           ├── span_1763.json
│   │   │           ├── span_1764.json
│   │   │           ├── span_1765.json
│   │   │           ├── span_1766.json
│   │   │           ├── span_1767.json
│   │   │           ├── span_1768.json
│   │   │           ├── span_1769.json
│   │   │           ├── span_177.json
│   │   │           ├── span_1770.json
│   │   │           ├── span_1771.json
│   │   │           ├── span_1772.json
│   │   │           ├── span_1773.json
│   │   │           ├── span_1774.json
│   │   │           ├── span_1775.json
│   │   │           ├── span_1776.json
│   │   │           ├── span_1777.json
│   │   │           ├── span_1778.json
│   │   │           ├── span_1779.json
│   │   │           ├── span_178.json
│   │   │           ├── span_1780.json
│   │   │           ├── span_1781.json
│   │   │           ├── span_1782.json
│   │   │           ├── span_1783.json
│   │   │           ├── span_1784.json
│   │   │           ├── span_1785.json
│   │   │           ├── span_1786.json
│   │   │           ├── span_1787.json
│   │   │           ├── span_1788.json
│   │   │           ├── span_1789.json
│   │   │           ├── span_179.json
│   │   │           ├── span_1790.json
│   │   │           ├── span_1791.json
│   │   │           ├── span_1792.json
│   │   │           ├── span_1793.json
│   │   │           ├── span_1794.json
│   │   │           ├── span_1795.json
│   │   │           ├── span_1796.json
│   │   │           ├── span_1797.json
│   │   │           ├── span_1798.json
│   │   │           ├── span_1799.json
│   │   │           ├── span_18.json
│   │   │           ├── span_180.json
│   │   │           ├── span_1800.json
│   │   │           ├── span_1801.json
│   │   │           ├── span_1802.json
│   │   │           ├── span_1803.json
│   │   │           ├── span_1804.json
│   │   │           ├── span_1805.json
│   │   │           ├── span_1806.json
│   │   │           ├── span_1807.json
│   │   │           ├── span_1808.json
│   │   │           ├── span_1809.json
│   │   │           ├── span_181.json
│   │   │           ├── span_1810.json
│   │   │           ├── span_1811.json
│   │   │           ├── span_1812.json
│   │   │           ├── span_1813.json
│   │   │           ├── span_1814.json
│   │   │           ├── span_1815.json
│   │   │           ├── span_1816.json
│   │   │           ├── span_1817.json
│   │   │           ├── span_1818.json
│   │   │           ├── span_1819.json
│   │   │           ├── span_182.json
│   │   │           ├── span_1820.json
│   │   │           ├── span_1821.json
│   │   │           ├── span_1822.json
│   │   │           ├── span_1823.json
│   │   │           ├── span_1824.json
│   │   │           ├── span_1825.json
│   │   │           ├── span_1826.json
│   │   │           ├── span_1827.json
│   │   │           ├── span_1828.json
│   │   │           ├── span_1829.json
│   │   │           ├── span_183.json
│   │   │           ├── span_1830.json
│   │   │           ├── span_1831.json
│   │   │           ├── span_1832.json
│   │   │           ├── span_1833.json
│   │   │           ├── span_1834.json
│   │   │           ├── span_1835.json
│   │   │           ├── span_1836.json
│   │   │           ├── span_1837.json
│   │   │           ├── span_1838.json
│   │   │           ├── span_1839.json
│   │   │           ├── span_184.json
│   │   │           ├── span_1840.json
│   │   │           ├── span_1841.json
│   │   │           ├── span_1842.json
│   │   │           ├── span_1843.json
│   │   │           ├── span_1844.json
│   │   │           ├── span_1845.json
│   │   │           ├── span_1846.json
│   │   │           ├── span_1847.json
│   │   │           ├── span_1848.json
│   │   │           ├── span_1849.json
│   │   │           ├── span_185.json
│   │   │           ├── span_1850.json
│   │   │           ├── span_1851.json
│   │   │           ├── span_1852.json
│   │   │           ├── span_1853.json
│   │   │           ├── span_1854.json
│   │   │           ├── span_1855.json
│   │   │           ├── span_1856.json
│   │   │           ├── span_1857.json
│   │   │           ├── span_1858.json
│   │   │           ├── span_1859.json
│   │   │           ├── span_186.json
│   │   │           ├── span_1860.json
│   │   │           ├── span_1861.json
│   │   │           ├── span_1862.

================================================
FILE CONTENTS
================================================

================================================
FILE: .buildkite/hooks/pre-command
================================================
#!/bin/bash

set +u

echo "--- :golang: Setting up Golang build environment"

if [[ ! -z "${BUILDKITE_GOLANG_IMPORT_PATH:-}" ]] && [[ "$BUILDKITE_GOLANG_IMPORT_PATH" != "" ]]; then
  NEW_GOPATH="$(pwd)/tmp/go"
  NEW_BUILD_CHECKOUT_PATH="$NEW_GOPATH/src/$BUILDKITE_GOLANG_IMPORT_PATH"

  # Create the regular GOPATH folders
  mkdir -p "$NEW_GOPATH/bin"
  mkdir -p "$NEW_GOPATH/src"

  # Create the /src/x.com/project/name path, and create a symlink of the
  # current build to that new directory
  mkdir -p "$NEW_BUILD_CHECKOUT_PATH"
  rm -rf "$NEW_BUILD_CHECKOUT_PATH"
  ln -s "$(pwd)" "$NEW_BUILD_CHECKOUT_PATH"

  export GOPATH=$NEW_GOPATH
  echo "New \$GOPATH is set to $NEW_GOPATH"
  echo "Build will now be at $NEW_BUILD_CHECKOUT_PATH"

  export BUILDKITE_BUILD_CHECKOUT_PATH=$NEW_BUILD_CHECKOUT_PATH
else
  echo "No \$BUILDKITE_GOLANG_IMPORT_PATH set, skipping..."
fi


================================================
FILE: .buildkite/pipeline.yml
================================================
---
steps:
  - command: './nightly.sh'
    label: 'build & run geth'
    env:
      BUILDKITE_GOLANG_IMPORT_PATH: "github.com/erigontech/erigon"


================================================
FILE: .dockerignore
================================================
**/*_test.go
**/*.a
**/*.dylib
**/*.o
**/*.dSYM

build
tests/testdata
cmd/prometheus
vendor

Dockerfile
.github

================================================
FILE: .gitattributes
================================================
# Auto detect text files and perform LF normalization
* text=auto
*.txt text eol=lf
*.sol linguist-language=Solidity


================================================
FILE: .github/CONTRIBUTING.md
================================================
# Contributing

Thank you for considering to help out with the source code! We welcome 
contributions from anyone on the internet, and are grateful for even the 
smallest of fixes!

If you'd like to contribute to Erigon, please fork, fix, commit and send a 
pull request for the maintainers to review and merge into the main code base. If
you wish to submit more complex changes though, please check up with the core 
devs first on [Discord server](https://github.com/erigontech/erigon#erigon-discord-server) to 
ensure those changes are in line with the general philosophy of the project 
and/or get some early feedback which can make both your efforts much lighter as
well as our review and merge procedures quick and simple.

## Coding guidelines

Please make sure your contributions adhere to our coding guidelines:

 * Code must adhere to the official Go 
[formatting](https://golang.org/doc/effective_go.html#formatting) guidelines 
(i.e. uses [gofmt](https://golang.org/cmd/gofmt/)).
 * Code must be documented adhering to the official Go 
[commentary](https://golang.org/doc/effective_go.html#commentary) guidelines.
 * Pull requests need to be based on and opened against the `main` branch.
 * Commit messages should be prefixed with the package(s) they modify.
   * E.g. "eth, rpc: make trace configs optional"

## Can I have feature X

Before you submit a feature request, please check and make sure that it isn't 
possible through some other means. The JavaScript-enabled console is a powerful 
feature in the right hands. Please check our 
[Wiki page](https://github.com/erigontech/erigon/wiki) for more info
and help.

## Configuration, dependencies, and tests

Please see the [Readme](https://github.com/erigontech/erigon#readme) file
for more details on configuring your environment, managing project dependencies
and testing procedures.


================================================
FILE: .github/ISSUE_TEMPLATE/bug.md
================================================
---
name: Report a bug
about: Something with Erigon is not working as expected
title: ''
labels: 'type:bug'
assignees: ''
---

#### System information

Erigon version: `./erigon --version`

OS & Version: Windows/Linux/OSX

Commit hash: 

Erigon Command (with flags/config):

Consensus Layer:

Consensus Layer Command (with flags/config):

Chain/Network: 

#### Expected behaviour


#### Actual behaviour


#### Steps to reproduce the behaviour


#### Backtrace

````
[backtrace]
````


================================================
FILE: .github/ISSUE_TEMPLATE/feature.md
================================================
---
name: Request a feature
about: Report a missing feature - e.g. as a step before submitting a PR
title: ''
labels: 'type:feature'
assignees: ''
---

# Rationale

Why should this feature exist?
What are the use-cases?

# Implementation

Do you have ideas regarding the implementation of this feature?
Are you willing to implement this feature?

================================================
FILE: .github/ISSUE_TEMPLATE/question.md
================================================
---
name: Ask a question
about: Something is unclear
title: ''
labels: 'type:docs'
assignees: ''
---

This should only be used in very rare cases e.g. if you are not 100% sure if something is a bug or asking a question that leads to improving the documentation. For general questions please use [Erigon's discord](https://github.com/erigontech/erigon#erigon-discord-server).


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "weekly"


================================================
FILE: .github/no-response.yml
================================================
# Number of days of inactivity before an Issue is closed for lack of response
daysUntilClose: 30
# Label requiring a response
responseRequiredLabel: "need:more-information"
# Comment to post when closing an Issue for lack of response. Set to `false` to disable
closeComment: >
  This issue has been automatically closed because there has been no response
  to our request for more information from the original author. With only the
  information that is currently in the issue, we don't have enough information
  to take action. Please reach out if you have more relevant information or
  answers to our questions so that we can investigate further.


================================================
FILE: .github/stale.yml
================================================
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 366
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 42
# Issues with these labels will never be considered stale
exemptLabels:
  - pinned
  - security
# Label to use when marking an issue as stale
staleLabel: "status:inactive"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false


================================================
FILE: .github/workflows/backups-dashboards.yml
================================================
# Author: Michele@DevOpsTeam.Erigon
# Maintainers: DevOps@DevOpsTeam.Erigon
# Description: This workflow is responsible for backing up the dashboards of the Erigon project.
# Status: Production (further improvements are planned though)

name: Dashboards backup

env:
  GREEN: '\033[0;32m'
  RED: '\033[0;31m'
  YELLOW: '\033[0;33m'
  NOCOLOUR: '\033[0m'
  ERIGON_BRANCH: main
  
on:
  workflow_dispatch:
    inputs:
      TEMPLATE_BRANCH:
        required: false
        type: string
        default: main
        description: 'The branch to pull the backup script from (default: main)'
  
jobs:
  # 
  # NOTE: This workflow splits the backup process in 2 jobs to spot any pulling issue early on
  #
  preparation:
    runs-on: ubuntu-latest
    environment: dashboards_backups
    steps:    
    - name: Pull backup script from ${{ inputs.TEMPLATE_BRANCH}} branch
      run: |
        set +x
        curl -L -H "Authorization: Bearer ${{ secrets.GH_TOKEN }}" -H "Accept: application/vnd.github.v3.raw" -H "X-GitHub-Api-Version: 2022-11-28" https://api.github.com/repos/erigontech/scripts/contents/dashboards/dashboard-backup.sh?ref=${{ inputs.TEMPLATE_BRANCH}} -o /tmp/dashboard-backup
    
    - name: Upload dashboard-backup
      uses: actions/upload-artifact@v4
      with:
        name: dashboard-backup
        path: /tmp/dashboard-backup
        retention-days: 1
        

  backup_dashboard:
    needs: preparation
    runs-on: ubuntu-latest
    environment: dashboards_backups
    strategy:
      matrix:
        # For each dashboard add an entry in the list here below (and add an entry in the dictionary within the backup script too!)
        dashboard: [erigon_custom_metrics,erigonQA]
    env:
      DASHBOARDS_AUTH_TOKEN: ${{ secrets.DASHBOARDS_AUTH_TOKEN }}
      GH_TOKEN: ${{ secrets.GH_TOKEN }}
      DASHBOARDS_GIT_CONFIG: ${{ secrets.DASHBOARDS_GIT_CONFIG }}
    steps:
    - name: Clone erigon from ${{ env.ERIGON_BRANCH }} branch
      uses: actions/checkout@v5
      with:
        ref: ${{ env.ERIGON_BRANCH }}
        fetch-depth: 1
        path: ${{ github.workspace }}/erigon

    - name: Move repository to $HOME # as the backup script expects it to be there
      run: mv ${{ github.workspace }}/erigon $HOME/

    - name: Set-up git
      run: |
        echo ${{ secrets.DASHBOARDS_GIT_CONFIG }} | base64 -d > $HOME/.gitconfig
              
    - name: Download dashboard-backup
      uses: actions/download-artifact@v5
      with:
        name: dashboard-backup
        path: /tmp

    - name: Set dashboard-backup permissions
      run: chmod +x /tmp/dashboard-backup

    - name: BACKUP OF ${{ matrix.dashboard }} DASHBOARD 
      run: |
        set +x
        echo -e "${{ env.GREEN }} I'm processing the ${{ matrix.dashboard }} dashboard... ${{ env.NOCOLOUR }}"
        /tmp/dashboard-backup ${{ matrix.dashboard }}
  

  housekeeping:
    needs: [preparation, backup_dashboard]
    runs-on: ubuntu-latest
    if: always()
    steps:
      - name: cleaning up
        uses: geekyeggo/delete-artifact@v5
        with:
          name: |
            dashboard-backup

      - name: Bye ${{ github.actor }}
        if: always()
        run: |
          set +x 
          if [ "${{ needs.preparation.result }}" == "success" ] && [ "${{ needs.backup_dashboard.result }}" == "success" ]; then
            echo -e "${{ env.YELLOW }} --------------------------------------------------------------------------------------------------------------------- ${{ env.NOCOLOUR }}"       
            echo -e "${{ env.YELLOW }}         *** It was a true pleasure to serve you ${{ github.actor }}, SEE YOU NEXT TIME!                               ${{ env.NOCOLOUR }}"      
            echo -e "${{ env.YELLOW }} --------------------------------------------------------------------------------------------------------------------- ${{ env.NOCOLOUR }}"       
          else
            echo -e "${{ env.RED }} --------------------------------------------------------------------------------------------------------------------- ${{ env.RED }}"       
            echo -e "${{ env.RED }}         *** Sorry ${{ github.actor }}, it seems there was an error this time: just fix it and COME BACK!              ${{ env.RED }}"      
            echo -e "${{ env.RED }} --------------------------------------------------------------------------------------------------------------------- ${{ env.RED }}"       
          fi
          

================================================
FILE: .github/workflows/check.yml
================================================
name: Check

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - run: echo ${GITHUB_REF}
      - run: echo ${GITHUB_REF#refs/tags/}
      - run: echo ${GITHUB_REF##*/}


================================================
FILE: .github/workflows/ci-cd-main-branch-docker-images.yml
================================================
name: CI-CD build and deploy docker images based on the last commit in the target branch
run-name: "Commit id ${{ github.sha }}: CI-CD build and deploy docker images based on the commit id in the ${{ inputs.checkout_ref == '' && github.ref_name || inputs.checkout_ref }} branch"

env:
  APPLICATION: "erigon"
  APP_REPO: "erigontech/erigon"
  DOCKERHUB_REPOSITORY: "erigontech/erigon"
  LABEL_DESCRIPTION: "[docker image built on a last commit id from the main branch] Erigon is an implementation of Ethereum (execution layer with embeddable consensus layer), on the efficiency frontier. Archive Node by default."

on:
#  push:
#    branches:
#      - 'main'
#      - 'docker_pectra'
#    paths-ignore:
#      - '.github/**'
  workflow_dispatch:
    inputs:
      checkout_ref:
        required: false
        type: string
        default: ''
        description: 'The branch to checkout and build artifacts from (in case of manual run). Default is "" .'

jobs:

  Build:
    # runs-on: ubuntu-latest
    runs-on: [devops-01-self-hosted]
    timeout-minutes: 45
    outputs:
      docker_build_tag: ${{ steps.built_tag_export.outputs.docker_build_tag }}

    steps:
      - name: Cleanup workspace
        run: |
          rm -drf $(pwd)/*

      - name: Fast checkout git repository, git ref ${{ inputs.checkout_ref == '' && github.ref_name || inputs.checkout_ref }}
        uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 ## 4.1.7 release
        with:
          repository: ${{ env.APP_REPO }}
          fetch-depth: 1
          ref: ${{ inputs.checkout_ref == '' && github.ref || inputs.checkout_ref }}
          path: 'erigon'

      - name: Define variables
        id: def_docker_vars
        ## Idea is:
        ##   latest image:    erigontech/erigon:${tag_name}${latest_suffix}
        ##   commit id image: erigontech/erigon:${tag_name}-${short_commit_id}
        run: |
          branch_name="${{ inputs.checkout_ref == '' && github.ref_name || inputs.checkout_ref }}"
          case "$branch_name" in
            "main" )
              export tag_name='main';
              export keep_images=100;
              export latest_suffix='-latest'
              export binaries="erigon integration rpcdaemon"
              ;;
            "docker_pectra" )
              export tag_name='docker_pectra';
              export keep_images=5;
              export latest_suffix='';
              export binaries="erigon caplin diag downloader evm hack integration rpcdaemon rpctest sentinel sentry state txpool"
              ;;
            * )
              # use last string after last slash '/' by default if branch contains slash:
              export tag_name=$(echo ${{ inputs.checkout_ref }} | sed -e  's/.*\///g' );
              export keep_images=0;
              export latest_suffix=''
              export binaries="erigon"
              ;;
          esac
          echo "tag_name=${tag_name}" >> $GITHUB_OUTPUT
          echo "keep_images=${keep_images}" >> $GITHUB_OUTPUT
          echo "latest_suffix=${latest_suffix}" >> $GITHUB_OUTPUT
          echo "binaries=${binaries}" >> $GITHUB_OUTPUT
          echo "Debug ${tag_name} ${keep_images} ${latest_suffix} ${binaries}"

      - name: Get commit id
        id: getCommitId
        run: |
          cd erigon
          echo "id=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
          echo "short_commit_id=$(git rev-parse --short=7 HEAD)" >> $GITHUB_OUTPUT
          cd ..

      - name: Login to Docker Hub
        uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567  ## v3.3.0
        with:
          username: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_USERNAME }}
          password: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}

      - name: Set up QEMU
        uses: docker/setup-qemu-action@v3

      - name: Set up Docker Buildx
        id: docker-buildx
        uses: docker/setup-buildx-action@v3

      - name: Build and push multi-platform docker image based on the commit id ${{ steps.getCommitId.outputs.short_commit_id }} in the ${{ GITHUB.BASE_REF }} branch
        id: built_tag_export
        env:
          BUILD_VERSION: "${{ steps.def_docker_vars.outputs.tag_name }}-${{ steps.getCommitId.outputs.short_commit_id }}"
          BUILD_VERSION_LATEST: "${{ steps.def_docker_vars.outputs.tag_name }}${{ steps.def_docker_vars.outputs.latest_suffix }}"
          DOCKER_PUBLISH_CONDITION: ${{ steps.def_docker_vars.outputs.keep_images > 0 && format('--tag {0}:{1} ', env.DOCKER_URL, env.BUILD_VERSION) || '' }}
          DOCKER_URL: ${{ env.DOCKERHUB_REPOSITORY }}
          DOCKERFILE_PATH: Dockerfile
        run: |
          echo "Create build cache directories in case it is not yet extracted from existing cache"
          echo "docker_build_tag=${{ env.BUILD_VERSION }}" >> $GITHUB_OUTPUT
          cd erigon
          docker buildx build \
          --file ${{ env.DOCKERFILE_PATH }} \
          --build-arg BINARIES='${{ steps.def_docker_vars.outputs.binaries }}' \
          --attest type=provenance,mode=max \
          --no-cache \
          --sbom=true \
          ${{ steps.def_docker_vars.outputs.keep_images > 0 && format('--tag {0}:{1} ', env.DOCKER_URL, env.BUILD_VERSION) || '' }} \
          --tag ${{ env.DOCKER_URL }}:${{ env.BUILD_VERSION_LATEST }} \
          --label org.opencontainers.image.created=$(date -u +'%Y-%m-%dT%H:%M:%SZ') \
          --label org.opencontainers.image.authors="https://github.com/erigontech/erigon/graphs/contributors" \
          --label org.opencontainers.image.url="https://github.com/erigontech/erigon/blob/${{ inputs.checkout_ref == '' && github.ref || inputs.checkout_ref }}/Dockerfile" \
          --label org.opencontainers.image.documentation="https://docs.erigon.tech/" \
          --label org.opencontainers.image.source="https://github.com/erigontech/erigon" \
          --label org.opencontainers.image.version=${{ steps.getCommitId.outputs.id }} \
          --label org.opencontainers.image.revision=${{ steps.getCommitId.outputs.id }} \
          --label org.opencontainers.image.vcs-ref-short=${{ steps.getCommitId.outputs.short_commit_id }} \
          --label org.opencontainers.image.vendor="${{ github.repository_owner }}" \
          --label org.opencontainers.image.description="${{ env.LABEL_DESCRIPTION }}" \
          --push \
          --platform linux/amd64,linux/arm64 .
          echo "Docker build and push done"

      - name: export and print docker build tag, cleanup old docker images
        env:
          BUILD_VERSION: "${{ steps.def_docker_vars.outputs.tag_name }}-${{ steps.getCommitId.outputs.short_commit_id }}"
          BUILD_VERSION_LATEST: "${{ steps.def_docker_vars.outputs.tag_name }}${{ steps.def_docker_vars.outputs.latest_suffix }}"
          BUILD_VERSION_CONDITION: ${{ steps.def_docker_vars.outputs.keep_images > 0 && format('{0}:{1} ',env.DOCKER_URL,env.BUILD_VERSION) || '' }}
          DOCKER_URL: ${{ env.DOCKERHUB_REPOSITORY }}
          TAG_KEY: ${{ steps.def_docker_vars.outputs.tag_name }}
          KEEP_IMAGES: ${{ steps.def_docker_vars.outputs.keep_images }}
        run: |
          echo The following docker images have been published:
          echo "${{ env.DOCKERHUB_REPOSITORY }}:${{ env.BUILD_VERSION_LATEST }}"
          echo "${{ steps.def_docker_vars.outputs.keep_images > 0 && format('{0}:{1} ',env.DOCKER_URL,env.BUILD_VERSION) || '' }} (empty, if keep_images is 0)"
          echo
          echo "Cleanup old docker images matching pattern tag ~= ${{ env.TAG_KEY }}-XXXXXXX (where XXXXXXX is a short Commit IDs)"
          echo "Only last $KEEP_IMAGES images will be kept."
          curl_cmd="curl -s -H \"Authorization: JWT ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}\" "
          dockerhub_url='https://hub.docker.com/v2/namespaces/erigontech/repositories/erigon'
          ## getting all pages in a loop from dockerhub and grepping required tag from the list of tags:
          my_list () {
            # First page:
            next_page="$dockerhub_url/tags?page=1&page_size=100"
            while [ "$next_page" != "null" ]
              do
              # Print tags and push dates for tags matching "${{ env.TAG_KEY }}-":
              $curl_cmd $next_page | jq -r '.results|.[]|.name + " " + .tag_last_pushed' | grep '${{ env.TAG_KEY }}-' || true
              next_page=`$curl_cmd $next_page | jq '.next' | sed -e 's/^\"//' -e 's/\"$//'`
            done
            }
            echo "DEBUG: full list of images:"
            my_list
            echo "DEBUG: end of the list."
            my_list | tail -n+${{ env.KEEP_IMAGES }} | while read line; do
              echo -n "Removing docker image/published - $line "
              current_image=$(echo $line | sed -e 's/^\(${{ env.TAG_KEY }}-.\{7\}\) .*/\1/')
              output_code=$(curl --write-out %{http_code} --output curl-output.log \
                    -s -X DELETE -H "Accept: application/json" \
                    -H "Authorization: JWT ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}" \
                    https://hub.docker.com/v2/repositories/erigontech/erigon/tags/${current_image} )
              if [ $output_code -ne 204 ]; then
                echo "ERROR: failed to remove docker image erigon:${current_image}"
                echo "ERROR: API response: $(cat curl-output.log)."
              else
                echo -n " - removed. "
              fi
              echo "Done."
            done


================================================
FILE: .github/workflows/ci.yml
================================================
name: Unit tests
on:
  push:
    branches:
      - main
      - 'release/**'
  pull_request:
    branches:
      - '**'
    types:
      - opened
      - reopened
      - synchronize
      - ready_for_review
    
  workflow_dispatch:

jobs:
  linux:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}-{2}', github.workflow, matrix.os, github.run_id) ||
          format('{0}-{1}-{2}', github.workflow, matrix.os, github.ref)
        }}
      cancel-in-progress: true
    if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }}
    strategy:
      matrix:
        # list of os: https://github.com/actions/virtual-environments
        os:
          - ubuntu-latest
          - macos-latest
    runs-on: ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0

      - uses: actions/setup-go@v6
        with:
          go-version: '1.24'
          cache: ${{ contains(fromJSON('[
            "refs/heads/release/2.60",
            "refs/heads/release/2.61",
            "refs/heads/release/3.0",
            "refs/heads/main"
            ]'), github.ref) }}

      - name: Install dependencies on Linux
        if: runner.os == 'Linux'
        run: sudo apt update && sudo apt install build-essential

      - name: Build
        run: make all

      - name: Reproducible build test
        run: |
          make erigon
          shasum -a256 ./build/bin/erigon > erigon1.sha256
          make erigon
          shasum -a256 ./build/bin/erigon > erigon2.sha256
          if ! cmp -s erigon1.sha256 erigon2.sha256; then
            echo >&2 "Reproducible build broken"; cat erigon1.sha256; cat erigon2.sha256; exit 1
          fi

      - name: Test
        run: make test-short

  win:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}-{2}', github.workflow, matrix.os, github.run_id) ||
          format('{0}-{1}-{2}', github.workflow, matrix.os, github.ref)
        }}
      cancel-in-progress: true
    if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }}
    strategy:
      matrix:
        os: [ windows-2025 ]
    runs-on: ${{ matrix.os }}

    steps:
      - name: configure Pagefile
        uses: al-cheb/configure-pagefile-action@v1.4
        with:
          minimum-size: 8GB
      - uses: actions/checkout@v5
      - uses: actions/setup-go@v6
        with:
          go-version: '1.24'
          cache: ${{ contains(fromJSON('[
            "refs/heads/release/2.60",
            "refs/heads/release/2.61",
            "refs/heads/release/3.0",
            "refs/heads/main"
            ]'), github.ref) }}

      - uses: actions/cache@v4
        with:
          path: |
            C:\ProgramData\chocolatey\lib\mingw
            C:\ProgramData\chocolatey\lib\cmake
          key: chocolatey-${{ matrix.os }}
      - name: Install dependencies
        run: |
          choco upgrade mingw -y --no-progress --version 13.2.0

      - name: Build
        run: .\wmake.ps1 all

      - name: Test
        run: .\wmake.ps1 test-short

      - name: Test erigon-lib
        run: cd erigon-lib && make test-short


================================================
FILE: .github/workflows/docker-image-remove.yml
================================================
name: Remove docker image
run-name: Request to remove erigontech/erigon:${{ inputs.docker_image_tag }} by @${{ github.actor }}

env:
  DOCKERHUB_REPOSITORY: "erigontech/erigon"
  API_URL: "https://hub.docker.com/v2/repositories/erigontech/erigon/tags"

on:
  push:
    branches-ignore:
      - '**'
  workflow_dispatch:
    inputs:
      docker_image_tag:
        required: true
        type: string
        default: 'not_yet_defined'
        description: 'Docker image tag to remove from hub.docker.com. Works only for erigontech/erigon'

jobs:

  build-release:
    runs-on: ubuntu-latest
    timeout-minutes: 15
    name: Remove docker image

    steps:

      - name: Run API Call
        env:
          TOKEN: ${{ secrets.ORG_DOCKERHUB_ERIGONTECH_TOKEN }}
        run: |
          output_code=$(curl --write-out %{http_code} --output curl-output.log \
                    -s -X DELETE -H "Accept: application/json" \
                    -H "Authorization: JWT ${{ env.TOKEN }}" \
                    ${{ env.API_URL }}/${{ inputs.docker_image_tag }} )
          if [ $output_code -ne 204 ]; then
            echo "ERROR: failed to remove docker image ${{ env.DOCKERHUB_REPOSITORY }}:${{ inputs.docker_image_tag }}"
            echo "ERROR: API response: $(cat curl-output.log)."
            exit 1
          else
            echo "SUCCESS: docker image ${{ env.DOCKERHUB_REPOSITORY }}:${{ inputs.docker_image_tag }} removed."
            exit 0
          fi


================================================
FILE: .github/workflows/docker-tags.yml
================================================
name: Docker tags

on:
  push:
    tags:
      - 'y*.*.*'
  workflow_dispatch:

jobs:
  goreleaser:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v5
        with:
          fetch-depth: 0

#      - name: dockerhub-login
#        uses: docker/login-action@v3
#        with:
#          username: ${{ secrets.DOCKERHUB }}
#          password: ${{ secrets.DOCKERHUB_KEY }}
      - name: ghcr-login
        uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: docker/setup-qemu-action@v3

      - run: |
          make release-dry-run
          docker images
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
          VERSION: ${GITHUB_REF#refs/tags/}
#          DOCKER_USERNAME: ${{ secrets.DOCKERHUB }}
#          DOCKER_PASSWORD: ${{ secrets.DOCKERHUB_KEY }}


================================================
FILE: .github/workflows/kurtosis/deposit-request.io
================================================
id: pectra-massive-deposit-0x02
name: "Massive deposit with 0x02 creds"
timeout: 1h
config:
  #walletPrivkey: ""
  depositContract: "0x4242424242424242424242424242424242424242"
  targetAddress: "0x65D08a056c17Ae13370565B04cF77D2AfA1cB9FA"

tasks:
- name: generate_random_mnemonic
  title: "Generate random mnemonic"
  config:
    mnemonicResultVar: "validatorMnemonic"
- name: generate_child_wallet
  title: "Generate wallet for lifecycle test"
  config:
    prefundMinBalance: 2501000000000000000000 # ensure 2501 ETH
    walletAddressResultVar: "depositorAddress"
    walletPrivateKeyResultVar: "depositorPrivateKey"
  configVars:
    privateKey: "walletPrivkey"
- name: sleep
  title: "wait for child wallet availablility"
  config:
    duration: 12s # wait 1 slot to ensure all ELs have the proper child wallet balance

# generate deposits & wait for activation
- name: run_tasks
  title: "Generate normal deposits & track inclusion"
  config:
    stopChildOnResult: false
    tasks:
    - name: generate_deposits
      title: "Generate 2 deposits with 1000 ETH each"
      config:
        limitTotal: 8
        limitPerSlot: 2
        limitPending: 4
        depositAmount: 32
        awaitReceipt: true
        failOnReject: true
        validatorPubkeysResultVar: "validatorPubkeys"
      configVars:
        walletPrivkey: "depositorPrivateKey"
        mnemonic: "validatorMnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.targetAddress | capture(\"(0x)?(?<addr>.+)\").addr)"

# generate deposits & wait for activation
- name: run_tasks
  title: "Generate deposits & track inclusion"
  config:
    stopChildOnResult: false
    tasks:
    - name: generate_deposits
      title: "Generate 2 deposits with 1000 ETH each"
      config:
        limitTotal: 2
        limitPerSlot: 1
        limitPending: 1
        depositAmount: 1000
        awaitReceipt: true
        failOnReject: true
        validatorPubkeysResultVar: "validatorPubkeys"
      configVars:
        walletPrivkey: "depositorPrivateKey"
        mnemonic: "validatorMnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.targetAddress | capture(\"(0x)?(?<addr>.+)\").addr)"


================================================
FILE: .github/workflows/kurtosis/eip7702-test.io
================================================

id: eip7702-test
name: "EIP7702 test"
timeout: 30m
config:
  #walletPrivkey: ""
  waitForSlot: 41
tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

- name: generate_child_wallet
  title: "Generate wallet for EIP7702 test"
  config:
    prefundMinBalance: 10000000000000000000 # ensure 10 ETH
    walletAddressResultVar: "eoaAddress"
    walletPrivateKeyResultVar: "eoaPrivateKey"
    randomSeed: true
  configVars:
    privateKey: "walletPrivkey"
- name: sleep
  title: "wait for child wallet availablility"
  config:
    duration: 12s # wait 1 slot to ensure all ELs have the proper child wallet balance

- name: generate_transaction
  title: "Deploy EIP-7702 delegate contract"
  config:
    feeCap: 5000000000 # 5 gwei
    gasLimit: 2500000
    contractDeployment: true
    callData: "0x6080604052348015600e575f80fd5b50607580601a5f395ff3fe608060405236601057600e6018565b005b60166018565b005b365f80375f5160601c5f80601436036014845af43d5f803e805f8114603b573d5ff35b3d5ffdfea264697066735822122041f98880dc8582e942863e8dc7b6c126a09ff7ec9c2fd36d59df9196170dcf4664736f6c634300081a0033"
    failOnReject: true
    contractAddressResultVar: "delegateContractAddr"
  configVars:
    privateKey: "eoaPrivateKey"
  
- name: generate_transaction
  title: "Deploy EIP-7702 test contract"
  config:
    feeCap: 5000000000 # 5 gwei
    gasLimit: 2500000
    contractDeployment: true
    callData: "0x6080604052348015600e575f80fd5b506102198061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061003f575f3560e01c80635ec8c7ac146100435780636b59084d1461004d578063b895c74a14610055575b5f80fd5b61004b61006f565b005b61004b6100c2565b61005d5f5481565b60405190815260200160405180910390f35b5f8054908061007d8361016b565b90915550505f5460408051328152602081019290925233917fb65d14ceb0bd10fc227373cb4bf5c54ece032fe7a118847459d3bd1eb4681b8f910160405180910390a2565b60645f9081556040805160048152602481018252602080820180516001600160e01b03166317b231eb60e21b179052915133926101039230929091016101a6565b60408051601f198184030181529082905261011d916101d1565b5f604051808303815f865af19150503d805f8114610156576040519150601f19603f3d011682016040523d82523d5f602084013e61015b565b606091505b5050905080610168575f80fd5b50565b5f6001820161018857634e487b7160e01b5f52601160045260245ffd5b5060010190565b5f81518060208401855e5f93019283525090919050565b6bffffffffffffffffffffffff198360601b1681525f6101c9601483018461018f565b949350505050565b5f6101dc828461018f565b939250505056fea26469706673582212203c5b729a024e2276896980d56840e87ce5c2cac7308780d5eb6553200eb09e2364736f6c634300081a0033"
    failOnReject: true
    contractAddressResultVar: "testContractAddr"
  configVars:
    privateKey: "eoaPrivateKey"

- name: generate_transaction
  title: "Call test1 from EOA1 with authorization for EOA1 to delegate contract"
  config:
    feeCap: 5000000000 # 5 gwei
    gasLimit: 1000000
    callData: "0x6b59084d"
    setCodeTxType: true
    awaitReceipt: true
  configVars:
    privateKey: "eoaPrivateKey"
    targetAddress: "testContractAddr"
    authorizations: "| [ { codeAddress: .delegateContractAddr, signerPrivkey: .eoaPrivateKey, nonce: 3 } ]"


================================================
FILE: .github/workflows/kurtosis/eip7702-txpool-invalidation.io
================================================
id: eip7702-txpool-invalidation
name: "EIP7702 txpool invalidation"
timeout: 30m
config:
  walletCount: 10 # Number of child wallets to create
  txPerWallet: 2 # Number of transactions per child wallet
  invalidationScenario: 1 # 0: all, 1: regular txs, 2: delegated deployments
  #walletPrivkey: ""
  waitForSlot: 41

tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

# wait for electra activation
- name: get_consensus_specs
  id: get_specs
  title: "Get consensus chain specs"
- name: check_consensus_slot_range
  title: "Wait for electra activation"
  timeout: 5m
  configVars:
    minEpochNumber: "tasks.get_specs.outputs.specs.ELECTRA_FORK_EPOCH"


# prepare wallets
- name: run_tasks_concurrent
  title: "Prepare wallets"
  config:
    newVariableScope: false
    tasks:
    - name: run_task_matrix
      id: create_child_wallets
      title: "Generate child wallets"
      configVars:
        matrixValues: "| [range(.walletCount)]"
      config:
        matrixVar: "walletIndex"
        runConcurrent: true
        task:
          name: generate_child_wallet
          id: create_wallet
          title: "Generate child wallet ${walletIndex}"
          config:
            prefundMinBalance: 1000000000000000000 # 1 ETH
            randomSeed: true
          configVars:
            privateKey: "walletPrivkey"

    - name: generate_child_wallet
      id: create_eoa_wallet
      title: "Generate wallet for EIP7702 transaction"
      config:
        prefundMinBalance: 2000000000000000000 # 2 ETH
        randomSeed: true
      configVars:
        privateKey: "walletPrivkey"

- name: sleep
  title: "Wait for wallet funding"
  config:
    duration: 12s

# SCENARIO 1: invalidation via a 7702 authorization
- name: run_tasks
  if: "| (.invalidationScenario == 0 or .invalidationScenario == 1)"
  title: "Scenario 1: Send regular txs and invalidate them via a 7702 authorization"
  config:
    tasks:
    - name: check_consensus_block_proposals
      title: "Wait for next block proposal (ensure we're at the beginning of the slot)"
    - name: run_tasks_concurrent
      title: "Send regular transactions from child wallets and invalidate them via a 7702 authorization"
      config:
        succeedTaskCount: 1 # only one task needs to succeed, the other fails as the txpool is invalidated
        tasks:
        - name: run_task_matrix
          title: "Send regular transactions from child wallets"
          configVars:
            matrixValues: "| [range(.walletCount)]"
            succeedTaskCount: "walletCount + 1"
          config:
            matrixVar: "walletIndex"
            runConcurrent: true
            task:
              name: generate_eoa_transactions
              title: "Send tx from wallet ${walletIndex}"
              config:
                feeCap: 5000000000 # 5 gwei
                gasLimit: 21000
                value: 100000000000000000 # 0.1 ETH
                targetAddress: "0x1111111111111111111111111111111111111111"
                awaitReceipt: true
              configVars:
                limitTotal: "txPerWallet"
                privateKey: "tasks.create_child_wallets.outputs.childScopes.[.walletIndex | tostring].tasks.create_wallet.outputs.childWallet.privkey"

        - name: run_tasks
          title: "Send 7702 tx after delay"
          config:
            tasks:
            # wait 2 secs to give the regular tx some time to propagate across the network before being invalidated
            - name: sleep
              title: "Wait before sending 7702 tx"
              config:
                duration: 2s

            - name: run_task_matrix
              title: "Send 7702 transaction to invalidate txpool"
              configVars:
                matrixValues: "| [range(.txPerWallet)]"
                succeedTaskCount: "txPerWallet + 1"
              config:
                matrixVar: "txIndex"
                runConcurrent: true
                task:
                  name: generate_transaction
                  title: "Send 7702 transaction ${txIndex}"
                  config:
                    feeCap: 10000000000 # 10 gwei
                    gasLimit: 15000000
                    tipCap: 5000000000
                    value: 0 # 0 ETH
                    targetAddress: "0x2222222222222222222222222222222222222222"
                    setCodeTxType: true
                  configVars:
                    nonce: "txIndex"
                    privateKey: "tasks.create_eoa_wallet.outputs.childWallet.privkey"
                    authorizations: "| . as $root | [range(.walletCount) | {codeAddress: \"0x0000000000000000000000000000000000001234\", nonce: $root.txIndex, signerPrivkey: $root.tasks.create_child_wallets.outputs.childScopes.[. | tostring].tasks.create_wallet.outputs.childWallet.privkey}]"


# SCENARIO 2: invalidation via delegated deployments
- name: run_tasks
  if: "| (.invalidationScenario == 0 or .invalidationScenario == 2)"
  title: "Scenario 2: Send regular txs and invalidate them via delegated deployments"
  config:
    tasks:

    # delpoy eip7701 test contract & test delegate
    - name: run_tasks_concurrent
      title: "Prepare eip7702 invalidation test contracts"
      config:
        newVariableScope: false
        tasks:
        - name: generate_transaction
          id: deploy_eip7701_test_contract
          title: "Deploy eip7701 test contract"
          config:
            feeCap: 5000000000 # 5 gwei
            gasLimit: 1000000
            contractDeployment: true
            callData: "6080604052348015600e575f80fd5b5061047c8061001c5f395ff3fe608060405234801561000f575f80fd5b506004361061004a575f3560e01c806333ff495a1461004e5780637d23e8571461005857806382fe1c9b14610076578063be4ca1e014610080575b5f80fd5b6100566100b0565b005b610060610111565b60405161006d919061036f565b60405180910390f35b61007e61019b565b005b61009a600480360381019061009591906103c6565b61024e565b6040516100a79190610400565b60405180910390f35b5f33908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60605f80548060200260200160405190810160405280929190818152602001828054801561019157602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311610148575b5050505050905090565b5f5b5f8054905081101561024b575f81815481106101bc576101bb610419565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166382fe1c9b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610228575f80fd5b505af115801561023a573d5f803e3d5ffd5b50505050808060010191505061019d565b50565b5f818154811061025c575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6102da826102b1565b9050919050565b6102ea816102d0565b82525050565b5f6102fb83836102e1565b60208301905092915050565b5f602082019050919050565b5f61031d82610288565b6103278185610292565b9350610332836102a2565b805f5b8381101561036257815161034988826102f0565b975061035483610307565b925050600181019050610335565b5085935050505092915050565b5f6020820190508181035f8301526103878184610313565b905092915050565b5f80fd5b5f819050919050565b6103a581610393565b81146103af575f80fd5b50565b5f813590506103c08161039c565b92915050565b5f602082840312156103db576103da61038f565b5b5f6103e8848285016103b2565b91505092915050565b6103fa816102d0565b82525050565b5f6020820190506104135f8301846103f1565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffdfea264697066735822122009cb00d85292b3405714243f4b0ce4f3e3511b206a3c0ee8b4ae7d0eecd27a2e64736f6c634300081a0033"
            failOnReject: true
          configVars:
            privateKey: "tasks.create_eoa_wallet.outputs.childWallet.privkey"
        - name: generate_transaction
          id: deploy_eip7701_test_delegate
          title: "Deploy eip7701 test delegate"
          config:
            feeCap: 5000000000 # 5 gwei
            gasLimit: 1000000
            contractDeployment: true
            callData: "6080604052348015600e575f80fd5b5061022d8061001c5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806382fe1c9b14602a575b5f80fd5b60306032565b005b5f6040518060200160419060c8565b6020820181038252601f19601f8201166040525090505f8151602083015ff09050803b606b575f80fd5b8073ffffffffffffffffffffffffffffffffffffffff166383197ef06040518163ffffffff1660e01b81526004015f604051808303815f87803b15801560af575f80fd5b505af115801560c0573d5f803e3d5ffd5b505050505050565b610122806100d68339019056fe6080604052348015600e575f80fd5b503373ffffffffffffffffffffffffffffffffffffffff167f1449abf21e49fd025f33495e77f7b1461caefdd3d4bb646424a3f445c4576a5b60405160405180910390a260c48061005e5f395ff3fe6080604052348015600e575f80fd5b50600436106026575f3560e01c806383197ef014602a575b5f80fd5b60306032565b005b3373ffffffffffffffffffffffffffffffffffffffff167f7dec311f70bce33f6997a1cc140bcb6149f9ee83d6be656e848b00d170c9820060405160405180910390a23373ffffffffffffffffffffffffffffffffffffffff16fffea2646970667358221220ca3fe2fd8ee8ebce4dc80ef81aa0ddd6378445f1cb812f1da843da64220a827c64736f6c634300081a0033a26469706673582212207b7486e77106264abec073f512d5c29f5fb636f5af344973fe13e44881be61e064736f6c634300081a0033"
            failOnReject: true
          configVars:
            privateKey: "tasks.create_eoa_wallet.outputs.childWallet.privkey"

    # register all child wallets to the controller
    - name: run_task_matrix
      title: "Register child wallets to controller"
      configVars:
        matrixValues: "| [range(.walletCount)]"
        succeedTaskCount: "walletCount + 1"
      config:
        matrixVar: "walletIndex"
        runConcurrent: true
        task:
          name: generate_transaction
          title: "Send tx from wallet ${walletIndex} (register to controller)"
          config:
            feeCap: 5000000000 # 5 gwei
            gasLimit: 150000
            value: 0 # 0.1 ETH
            callData: "0x33ff495a" # registerWallet()
            failOnReject: true
          configVars:
            privateKey: "tasks.create_child_wallets.outputs.childScopes.[.walletIndex | tostring].tasks.create_wallet.outputs.childWallet.privkey"
            targetAddress: "tasks.deploy_eip7701_test_contract.outputs.contractAddress"

    # prepare child wallets (delegate all to eip7701 test delegate)
    - name: generate_transaction
      title: "Send 7702 transaction to set code for all child wallets to eip7701 test delegate"
      config:
        feeCap: 10000000000 # 10 gwei
        gasLimit: 15000000
        tipCap: 2000000000
        value: 100000000000000000 # 0.1 ETH
        targetAddress: "0x1111111111111111111111111111111111111111"
        setCodeTxType: true
        awaitReceipt: true
      configVars:
        privateKey: "tasks.create_eoa_wallet.outputs.childWallet.privkey"
        authorizations: "| . as $root | [range(.walletCount) | {codeAddress: $root.tasks.deploy_eip7701_test_delegate.outputs.contractAddress, signerPrivkey: $root.tasks.create_child_wallets.outputs.childScopes.[. | tostring].tasks.create_wallet.outputs.childWallet.privkey}]"

    - name: check_consensus_block_proposals
      title: "Wait for next block proposal (ensure we're at the beginning of the slot)"

    # send regular txs and invalidate them via delegated deployments
    - name: run_tasks_concurrent
      title: "Send regular txs and invalidate them via delegated deployments"
      config:
        succeedTaskCount: 1 # only one task needs to succeed, the other fails as the txpool is invalidated
        tasks:
        - name: run_task_matrix
          title: "Send regular transactions from child wallets"
          configVars:
            matrixValues: "| [range(.walletCount)]"
            succeedTaskCount: "walletCount + 1"
          config:
            matrixVar: "walletIndex"
            runConcurrent: true
            task:
              name: generate_eoa_transactions
              title: "Send tx from wallet ${walletIndex}"
              config:
                feeCap: 5000000000 # 5 gwei
                gasLimit: 21000
                value: 100000000000000000 # 0.1 ETH
                targetAddress: "0x1111111111111111111111111111111111111111"
                awaitReceipt: true
              configVars:
                limitTotal: "txPerWallet"
                privateKey: "tasks.create_child_wallets.outputs.childScopes.[.walletIndex | tostring].tasks.create_wallet.outputs.childWallet.privkey"

        - name: run_tasks
          title: "Send mass delegated deployment that invalidates all previous transactions"
          config:
            tasks:
            # wait 2 secs to give the regular tx some time to propagate across the network before being invalidated
            - name: sleep
              title: "Wait before sending mass delegated deployment"
              config:
                duration: 2s

            - name: run_task_matrix
              title: "Send 7702 transaction to invalidate txpool"
              configVars:
                matrixValues: "| [range(.txPerWallet)]"
                succeedTaskCount: "txPerWallet + 1"
              config:
                matrixVar: "txIndex"
                runConcurrent: true
                task:
                  name: generate_transaction
                  title: "Send mass delegated deployment to invalidate tx ${txIndex}/${txPerWallet}"
                  config:
                    feeCap: 10000000000 # 10 gwei
                    gasLimit: 20000000
                    tipCap: 2000000000
                    value: 0 # 0 ETH
                    callData: "0x82fe1c9b" # runTest()
                  configVars:
                    privateKey: "tasks.create_eoa_wallet.outputs.childWallet.privkey"
                    targetAddress: "tasks.deploy_eip7701_test_contract.outputs.contractAddress"



================================================
FILE: .github/workflows/kurtosis/el-triggered-consolidation-of-consolidations.io
================================================

id: el-triggered-consolidation-of-consolidation
name: "Consolidation of Consolidations"
timeout: 1h
config:
  #walletPrivkey: ""
  initialSourceValidatorIndex: 10
  initialTargetValidatorIndex: 11
  finalTargetValidatorIndex: 12
  waitForSlot: 41
tasks:
  - name: check_clients_are_healthy
    title: "Check if at least one client is ready"
    timeout: 5m
    config:
      minClientCount: 1 
  - name: check_consensus_slot_range
    title: "Wait for slot >= ${waitForSlot}"
    timeout: 1h
    configVars:
      minSlotNumber: "waitForSlot"
  - name: run_task_options
    title: "Generate consolidations"
    config:
      task:
        name: generate_consolidations
        title: "Consolidate Validator ${sourceValidatorIndex} to ${targetValidatorIndex}"
        config:
          sourceIndexCount: 1
          failOnReject: true
          awaitReceipt: true
          consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"

        configVars:
          walletPrivkey: "walletPrivkey"
          sourceStartValidatorIndex: "initialSourceValidatorIndex"
          targetValidatorIndex: "initialTargetValidatorIndex"

  - name: check_consensus_validator_status
    title: "Wait for validator consolidation to start by checking if validator (${initialSourceValidatorIndex}) is exiting"
    timeout: 1h
    config:
      validatorStatus:
        - active_exiting
    configVars:
      validatorIndex: "initialSourceValidatorIndex"

  - name: check_consensus_validator_status
    title: "Wait for validator to exit (${initialSourceValidatorIndex}) to check consolidation status"
    timeout: 1h
    config:
      validatorStatus:
        - exited_unslashed
        - withdrawal_possible
        - withdrawal_done
    configVars:
      validatorIndex: "initialSourceValidatorIndex"

  - name: run_task_options
    title: "Generate consolidations for second validator"
    config:
      task:
        name: generate_consolidations
        title: "Consolidate Validator ${sourceValidatorIndex} to ${targetValidatorIndex}"
        config:
          sourceIndexCount: 1
          failOnReject: true
          awaitReceipt: true
          consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"

        configVars:
          walletPrivkey: "walletPrivkey"
          sourceStartValidatorIndex: "initialTargetValidatorIndex"
          targetValidatorIndex: "finalTargetValidatorIndex"

  - name: check_consensus_validator_status
    title: "Wait for validator consolidation to start by checking if validator (${initialSourceValidatorIndex}) is exiting"
    timeout: 1h
    config:
      validatorStatus:
        - active_exiting
    configVars:
      validatorIndex: "initialTargetValidatorIndex"

  - name: check_consensus_validator_status
    title: "Wait for validator to exit (${initialSourceValidatorIndex}) to check consolidation status"
    timeout: 1h
    config:
      validatorStatus:
        - exited_unslashed
        - withdrawal_possible
        - withdrawal_done
    configVars:
      validatorIndex: "initialTargetValidatorIndex"

================================================
FILE: .github/workflows/kurtosis/el-triggered-consolidations-test.io
================================================

id: el-triggered-consolidation
name: "EL-triggered consolidation test"
timeout: 1h
config:
  #walletPrivkey: ""
  sourceValidatorIndex: 6610
  targetValidatorIndex: 6611
  waitForSlot: 41

tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

- name: run_task_options
  title: "Generate consolidations"
  config:
    task:
      name: generate_consolidations
      title: "Consolidate Validator ${sourceValidatorIndex} to ${targetValidatorIndex}"
      config:
        sourceIndexCount: 1
        failOnReject: true
        awaitReceipt: true
        consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
      configVars:
        walletPrivkey: "walletPrivkey"
        sourceStartValidatorIndex: "sourceValidatorIndex"
        targetValidatorIndex: "targetValidatorIndex"

================================================
FILE: .github/workflows/kurtosis/el-triggered-exit.io
================================================

id: el-triggered-exit
name: "EL-triggered exit test"
timeout: 1h
config:
  #walletPrivkey: ""
  validatorIndex: 20
  waitForSlot: 41

tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

- name: check_consensus_validator_status
  title: "Get status for validator ${validatorIndex}"
  timeout: 1h
  config:
    validatorStatus:
    - active_ongoing
    validatorPubKeyResultVar: "validatorPubKey"
  configVars:
    validatorIndex: "validatorIndex"

- name: generate_transaction
  title: "Exit Validator ${validatorIndex} via EL"
  config:
    targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
    feeCap: 50000000000 # 50 gwei
    gasLimit: 1000000
    amount: "500000000000000000" # 0.5 ETH
    failOnReject: true
  configVars:
    privateKey: "walletPrivkey"
    # 0x0000000000000000 is the amount as uint64,  0 means full withdrawal / exit
    callData: "| .validatorPubKey + \"0000000000000000\""


================================================
FILE: .github/workflows/kurtosis/el-triggered-withdrawal.io
================================================

id: el-triggered-withdrawal
name: "EL-triggered withdrawal test"
timeout: 1h
config:
  walletPrivkey: ""
  validatorIndex: 20
  withdrawAmount: 1
  waitForSlot: 41

tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

- name: check_consensus_validator_status
  title: "Get status for validator ${validatorIndex}"
  timeout: 1h
  config:
    validatorStatus:
    - active_ongoing
    validatorPubKeyResultVar: "validatorPubKey"
  configVars:
    validatorIndex: "validatorIndex"

- name: run_shell
  id: build_calldata
  title: "Build calldata"
  config:
    envVars:
      amount: "withdrawAmount"
      pubkey: "validatorPubKey"
    command: |
      amount=$(echo $amount | jq -r .)
      amount=$(expr ${amount:-1} \* 1000000000)
      amount=$(printf "%016x" $amount)

      pubkey=$(echo $pubkey | jq -r .)

      echo "Pubkey: $pubkey"
      echo "Amount: $amount"
      echo "::set-out txCalldata $pubkey$amount"

- name: generate_transaction
  title: "Exit Validator ${validatorIndex} via EL"
  config:
    targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
    feeCap: 50000000000 # 50 gwei
    gasLimit: 1000000
    amount: "500000000000000000" # 0.5 ETH
    failOnReject: true
  configVars:
    privateKey: "walletPrivkey"
    # 0x0000000000000000 is the amount as uint64,  0 means full withdrawal / exit
    callData: "tasks.build_calldata.outputs.txCalldata"


================================================
FILE: .github/workflows/kurtosis/fast_lifecycle.io
================================================
participants_matrix:
  el:
    - el_type: erigon
      el_image: test/erigon:current
  cl:
    - cl_type: teku
      cl_image: consensys/teku:develop
    - cl_type: lodestar
      cl_image: chainsafe/lodestar:v1.28.1
network_params:
  electra_fork_epoch: 1
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 64
  seconds_per_slot: 1
additional_services:
  - assertoor
snooper_enabled: false
assertoor_params:
  run_stability_check: false
  run_block_proposal_check: false
  tests:
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/validator-lifecycle-test-v3.io


================================================
FILE: .github/workflows/kurtosis/fusaka.io
================================================
participants_matrix:
  el:
    - el_type: geth
      el_image: ethpandaops/geth:fusaka-devnet-0
    - el_type: erigon
      el_image: test/erigon:current
      el_log_level: "debug"
  cl:
    - cl_type: teku
      cl_image: ethpandaops/teku:das
      supernode: true

network_params:
  fulu_fork_epoch: 1
  bpo_1_epoch: 1
  bpo_1_max_blobs: 12
  bpo_1_target_blobs: 9
  bpo_2_epoch: 2
  bpo_2_max_blobs: 6
  bpo_2_target_blobs: 4
  bpo_3_epoch: 3
  bpo_3_max_blobs: 9
  bpo_3_target_blobs: 6
  bpo_4_epoch: 4
  bpo_4_max_blobs: 18
  bpo_4_target_blobs: 12
  bpo_5_epoch: 5
  bpo_5_max_blobs: 9
  bpo_5_target_blobs: 6
  withdrawal_type: "0x01"
  genesis_delay: 30
  seconds_per_slot: 3

snooper_enabled: true

additional_services:
  - dora
  - spamoor

spamoor_params:
  image: ethpandaops/spamoor:master
  max_mem: 4000
  spammers:
    - scenario: eoatx
      config:
        throughput: 200
    - scenario: blobs
      config:
        throughput: 20


================================================
FILE: .github/workflows/kurtosis/pectra.io
================================================
participants_matrix:
  el:
    - el_type: erigon
      el_image: test/erigon:current
      el_log_level: "debug"
  cl:
    - cl_type: teku
      cl_image: consensys/teku:25.9.1
    - cl_type: lighthouse
      cl_image: sigp/lighthouse:v7.0.1

network_params:
  electra_fork_epoch: 1
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  churn_limit_quotient: 16
  seconds_per_slot: 4
  genesis_delay: 90

additional_services:
  - assertoor
  # - dora
snooper_enabled: false
assertoor_params:
  run_stability_check: true
  run_block_proposal_check: true
  tests:
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/deposit-request.io
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/el-triggered-consolidations-test.io
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/el-triggered-withdrawal.io
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/el-triggered-exit.io
    - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/eip7702-test.io
    # - file: https://raw.githubusercontent.com/erigontech/erigon/refs/heads/main/.github/workflows/kurtosis/eip7702-txpool-invalidation.io


================================================
FILE: .github/workflows/kurtosis/regular-assertoor.io
================================================
participants_matrix:
  el:
    - el_type: erigon
      el_image: test/erigon:current
  cl:
    - cl_type: lighthouse
      cl_image: sigp/lighthouse:v7.0.1
    - cl_type: teku
      cl_image: consensys/teku:25.9.1
network_params:
  #electra_fork_epoch: 1
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
  seconds_per_slot: 4

additional_services:
  - assertoor
assertoor_params:
  run_stability_check: false
  run_block_proposal_check: true
  tests:
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/all-opcodes-test.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/blob-transactions-test.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/dencun-opcodes-test.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/eoa-transactions-test.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/synchronized-check.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/validator-exit-test.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/block-proposal-check.yaml
    - https://raw.githubusercontent.com/ethpandaops/assertoor-test/master/assertoor-tests/stability-check.yaml


================================================
FILE: .github/workflows/kurtosis/txpool-assertoor-short.io
================================================
participants:
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 1000000"
    - "--txpool.globalslots 1000000"
    - "--txpool.globalbasefeeslots 1000000"
  cl_type: lighthouse
  count: 1
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 1000000"
    - "--txpool.globalslots 1000000"
    - "--txpool.globalbasefeeslots 1000000"
  cl_type: lodestar
  count: 1
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 1000000"
    - "--txpool.globalslots 1000000"
    - "--txpool.globalbasefeeslots 1000000"
  cl_type: prysm
  count: 1
network_params:
  #electra_fork_epoch: 1
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
additional_services:
- assertoor
assertoor_params:
  run_stability_check: false
  run_block_proposal_check: true
  image: ghcr.io/erigontech/assertoor:latest
  tests:
  - https://raw.githubusercontent.com/erigontech/assertoor/master/playbooks/dev/tx-pool-check-short.yaml


================================================
FILE: .github/workflows/kurtosis/txpool-assertoor.io
================================================
participants:
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 2000000"
    - "--txpool.globalslots 2000000"
    - "--txpool.globalbasefeeslots 2000000"
  cl_type: lighthouse
  count: 1
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 2000000"
    - "--txpool.globalslots 2000000"
    - "--txpool.globalbasefeeslots 2000000"
  cl_type: lodestar
  count: 1
- el_type: erigon
  el_image: test/erigon:current
  el_extra_params:
    - "--txpool.globalqueue 2000000"
    - "--txpool.globalslots 2000000"
    - "--txpool.globalbasefeeslots 2000000"
  cl_type: prysm
  count: 1
network_params:
  #electra_fork_epoch: 1
  min_validator_withdrawability_delay: 1
  shard_committee_period: 1
additional_services:
- assertoor
assertoor_params:
  run_stability_check: false
  run_block_proposal_check: true
  image: ghcr.io/erigontech/assertoor:latest
  tests:
  - https://raw.githubusercontent.com/erigontech/assertoor/master/playbooks/dev/tx-pool-check.yaml


================================================
FILE: .github/workflows/kurtosis/validator-lifecycle-test-v3.io
================================================
id: validator-lifecycle-test-v3
name: "Validator Lifecycle Test (v3)"
timeout: 672h
config:
  walletPrivkey: ""
  depositContract: "0x4242424242424242424242424242424242424242"

tasks:
- name: check_clients_are_healthy
  title: "Check if at least one client is ready"
  timeout: 5m
  config:
    minClientCount: 1

# wait for electra activation
- name: get_consensus_specs
  id: get_specs
  title: "Get consensus chain specs"
- name: check_consensus_slot_range
  title: "Wait for electra activation"
  timeout: 1h
  configVars:
    minEpochNumber: "tasks.get_specs.outputs.specs.ELECTRA_FORK_EPOCH"

# prepare new mnemonic & child wallet
- name: get_random_mnemonic
  id: test_mnemonic
  title: "Generate random mnemonic"

- name: generate_child_wallet
  id: depositor_wallet
  title: "Generate wallet for lifecycle test"
  config:
    walletSeed: "validator-lifecycle-test-v3"
    prefundMinBalance: 500000000000000000000 # ensure 500 ETH
  configVars:
    privateKey: "walletPrivkey"

##
## STEP 1: generate deposits & wait for activation
##
- name: run_tasks
  title: "Generate deposits & track inclusion"
  config:
    stopChildOnResult: false
    tasks:

    # 4 deposits, 32 ETH each, 0x00 withdrawal creds
    - name: generate_deposits
      title: "Generate 4 deposits with 32 ETH each and 0x00 withdrawal creds (index 0-3)"
      id: deposit_0
      config:
        limitTotal: 4
        awaitReceipt: true
        failOnReject: true
        validatorPubkeysResultVar: "validatorPubkeys"
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
    
    # 1 deposit, 24 ETH, 0x00 withdrawal creds
    - name: generate_deposits
      title: "Generate 1 deposit with 24 ETH and 0x00 withdrawal creds (index 4)"
      id: deposit_1
      config:
        limitTotal: 1
        startIndex: 4
        awaitReceipt: true
        failOnReject: true
        depositAmount: 24
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"

    # 1 deposit, 32 ETH, 0x00 withdrawal creds
    - name: generate_deposits
      title: "Generate 1 deposit with 32 ETH and 0x00 withdrawal creds (index 0)"
      config:
        limitTotal: 1
        awaitReceipt: true
        failOnReject: true
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
    
    # 1 deposit, 1 ETH, 0x02 withdrawal creds
    - name: generate_deposits
      title: "Generate 1 deposit with 1 ETH and 0x02 withdrawal creds (index 1)"
      config:
        limitTotal: 1
        startIndex: 1
        awaitReceipt: true
        failOnReject: true
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"
    
    # 2 deposits, 32 ETH each, 0x01 withdrawal creds (index 5-6)
    - name: generate_deposits
      title: "Generate 2 deposits with 32 ETH each and 0x01 withdrawal creds (index 5-6)"
      id: deposit_2
      config:
        limitTotal: 2
        startIndex: 5
        awaitReceipt: true
        failOnReject: true
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x010000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"
    
    # 1 deposit, 24 ETH, 0x02 withdrawal creds (index 7)
    - name: generate_deposits
      title: "Generate 1 deposit with 24 ETH and 0x02 withdrawal creds (index 7)"
      id: deposit_3
      config:
        limitTotal: 1
        startIndex: 7
        awaitReceipt: true
        failOnReject: true
        depositAmount: 24
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"

    # 2 deposits, 64 ETH each, 0x02 withdrawal creds (index 8-9)
    - name: generate_deposits
      title: "Generate 2 deposits with 64 ETH each and 0x02 withdrawal creds (index 8-9)"
      id: deposit_4
      config:
        limitTotal: 2
        startIndex: 8
        awaitReceipt: true
        failOnReject: true
        depositAmount: 64
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"

    # 1 deposit, 24 ETH, 0x02 withdrawal creds (index 4)
    - name: generate_deposits
      title: "Generate 1 deposit with 24 ETH and 0x02 withdrawal creds (index 4)"
      config:
        limitTotal: 1
        startIndex: 4
        awaitReceipt: true
        failOnReject: true
        depositAmount: 24
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"
    
    # 1 deposit, 24 ETH, 0x02 withdrawal creds (index 7)
    - name: generate_deposits
      title: "Generate 1 deposit with 24 ETH and 0x02 withdrawal creds (index 7)"
      config:
        limitTotal: 1
        startIndex: 7
        awaitReceipt: true
        failOnReject: true
        depositAmount: 24
      configVars:
        walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        depositContract: "depositContract"
        withdrawalCredentials: "| \"0x020000000000000000000000\" + (.tasks.depositor_wallet.outputs.childWallet.address | capture(\"(0x)?(?<addr>.+)\").addr)"

    - name: run_shell
      title: "Collect deposited validator pubkeys"
      id: all_pubkeys
      config:
        envVars:
          validatorPubkeys0: "tasks.deposit_0.outputs.validatorPubkeys"
          validatorPubkeys1: "tasks.deposit_1.outputs.validatorPubkeys"
          validatorPubkeys2: "tasks.deposit_2.outputs.validatorPubkeys"
          validatorPubkeys3: "tasks.deposit_3.outputs.validatorPubkeys"
          validatorPubkeys4: "tasks.deposit_4.outputs.validatorPubkeys"
        command: |
          echo "validatorPubkeys 0: $(echo $validatorPubkeys0 | jq)"
          echo "validatorPubkeys 1: $(echo $validatorPubkeys1 | jq)"
          echo "validatorPubkeys 2: $(echo $validatorPubkeys2 | jq)"
          echo "validatorPubkeys 3: $(echo $validatorPubkeys3 | jq)"
          echo "validatorPubkeys 4: $(echo $validatorPubkeys4 | jq)"
          all_pubkeys=$(echo -e "$validatorPubkeys0\n$validatorPubkeys1\n$validatorPubkeys2\n$validatorPubkeys3\n$validatorPubkeys4" | jq -c -s 'flatten')
          echo "::set-output-json pubkeys $all_pubkeys"

    - name: run_task_matrix
      title: "Wait for activation of all deposited keys"
      timeout: 2h
      configVars:
        matrixValues: "tasks.all_pubkeys.outputs.pubkeys"
      config:
        runConcurrent: true
        matrixVar: "validatorPubkey"
        task:
          name: check_consensus_validator_status
          title: "Wait for validator to become activated (${validatorPubkey})"
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "validatorPubkey"

    # check validator status
    - name: run_tasks
      title: "Check validator status"
      config:
        tasks:
        # validator #0: 64 ETH (32 ETH EB), 0x00 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #0 info"
          id: validator_info_0
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[0]"
        - name: run_shell
          title: "Check validator #0 status: 64 ETH (32 ETH EB), 0x00 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_0.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 63900000000 ]; then
                echo "Balance too low! expected: > 63.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "32000000000" ]; then
                echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x00"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x00*, got: $withdrawal_creds"
                exit 1
              fi
        
        # validator #1: 33 ETH (32 ETH EB), 0x00 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #1 info"
          id: validator_info_1
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[1]"
        - name: run_shell
          title: "Check validator #1 status: 33 ETH (32 ETH EB), 0x00 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_1.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 32900000000 ]; then
                echo "Balance too low! expected: > 32.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "32000000000" ]; then
                echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x00"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x00*, got: $withdrawal_creds"
                exit 1
              fi
        
        # validator #4: 48 ETH (32 ETH EB), 0x00 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #4 info"
          id: validator_info_4
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[4]"
        - name: run_shell
          title: "Check validator #4 status: 48 ETH (32 ETH EB), 0x00 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_4.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 47900000000 ]; then
                echo "Balance too low! expected: > 47.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "32000000000" ]; then
                echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x00"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x00*, got: $withdrawal_creds"
                exit 1
              fi
        
        # validator #5: 32 ETH (32 ETH EB), 0x01 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #5 info"
          id: validator_info_5
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[5]"
        - name: run_shell
          title: "Check validator #5 status: 32 ETH (32 ETH EB), 0x01 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_5.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 31900000000 ]; then
                echo "Balance too low! expected: > 31.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "32000000000" ]; then
                echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x01"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x01*, got: $withdrawal_creds"
                exit 1
              fi

        # validator #6: 32 ETH (32 ETH EB), 0x01 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #6 info"
          id: validator_info_6
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[6]"
        - name: run_shell
          title: "Check validator #6 status: 32 ETH (32 ETH EB), 0x01 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_6.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 31900000000 ]; then
                echo "Balance too low! expected: > 31.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "32000000000" ]; then
                echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x01"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x01*, got: $withdrawal_creds"
                exit 1
              fi
        
        # validator #7: 48 ETH (48 ETH EB), 0x02 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #7 info"
          id: validator_info_7
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[7]"
        - name: run_shell
          title: "Check validator #7 status: 48 ETH (48 ETH EB), 0x02 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_7.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 47900000000 ]; then
                echo "Balance too low! expected: > 47.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "48000000000" ]; then
                echo "Effective balance too low! expected: 48 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
                exit 1
              fi
        
        # validator #8: 64 ETH (64 ETH EB), 0x02 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #8 info"
          id: validator_info_8
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[8]"
        - name: run_shell
          title: "Check validator #8 status: 64 ETH (64 ETH EB), 0x02 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_8.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 63900000000 ]; then
                echo "Balance too low! expected: > 63.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "64000000000" ]; then
                echo "Effective balance too low! expected: 64 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
                exit 1
              fi

        # validator #9: 64 ETH (64 ETH EB), 0x02 withdrawal creds
        - name: check_consensus_validator_status
          title: "Get validator #9 info"
          id: validator_info_9
          timeout: 5m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[9]"
        - name: run_shell
          title: "Check validator #9 status: 64 ETH (64 ETH EB), 0x02 withdrawal creds"
          config:
            envVars: 
              validator: "tasks.validator_info_9.outputs.validator"
            command: |
              balance=$(echo "$validator" | jq -r '.balance')
              if [ "$balance" -lt 63900000000 ]; then
                echo "Balance too low! expected: > 63.9 ETH, got: $balance Gwei"
                exit 1
              fi

              effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
              if [ "$effective_balance" != "64000000000" ]; then
                echo "Effective balance too low! expected: 64 ETH, got: $effective_balance Gwei"
                exit 1
              fi

              withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
              if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
                echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
                exit 1
              fi

# key status:
# index 0: active  64 ETH (32 ETH EB), 0x00 withdrawal creds
# index 1: active  33 ETH (32 ETH EB), 0x00 withdrawal creds
# index 2: active  32 ETH (32 ETH EB), 0x00 withdrawal creds
# index 3: active  32 ETH (32 ETH EB), 0x00 withdrawal creds
# index 4: active  48 ETH (32 ETH EB), 0x00 withdrawal creds
# index 5: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 6: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 7: active  48 ETH (48 ETH EB), 0x02 withdrawal creds
# index 8: active  64 ETH (64 ETH EB), 0x02 withdrawal creds
# index 9: active  64 ETH (64 ETH EB), 0x02 withdrawal creds

##
## STEP 2: generate BLS changes & wait for inclusion
##

- name: run_tasks
  title: "Generate BLS changes & track inclusion"
  config:
    stopChildOnResult: false
    tasks:

    - name: run_task_background
      title: "Generate BLS changes & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: run_tasks
          title: "Generate BLS changes & track inclusion"
          config:
            stopChildOnResult: false
            tasks:
            - name: generate_bls_changes
              title: "Generate BLS change for index 1-4 (0x01 creds)"
              config:
                limitTotal: 4
                startIndex: 1
                indexCount: 4
              configVars:
                mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
                targetAddress: "tasks.depositor_wallet.outputs.childWallet.address"
        
        foregroundTask:
          name: run_tasks_concurrent
          title: "Wait for inclusion of all BLS changes & partial withdrawals"
          config:
            tasks:
            - name: run_task_matrix
              title: "Wait for inclusion of BLS changes for keys 1-4"
              timeout: 1h
              configVars:
                matrixValues: "tasks.all_pubkeys.outputs.pubkeys[1:5]"
              config:
                runConcurrent: true
                matrixVar: "validatorPubkey"
                task:
                  name: check_consensus_block_proposals
                  title: "Wait for BLS change inclusion for ${validatorPubkey}"
                  config:
                    minBlsChangeCount: 1
                  configVars:
                    expectBlsChanges: "| [{publicKey: .validatorPubkey, address: .tasks.depositor_wallet.outputs.childWallet.address}]"
            - name: check_consensus_block_proposals
              title: "Wait for partial withdrawal (>0.9 ETH) for key 1"
              config:
                minWithdrawalCount: 1
              configVars:
                expectWithdrawals: "| [{publicKey: .tasks.all_pubkeys.outputs.pubkeys[1], address: .tasks.depositor_wallet.outputs.childWallet.address, minAmount: 900000000}]"
            - name: check_consensus_block_proposals
              title: "Wait for partial withdrawal (>15.9 ETH) for key 4"
              config:
                minWithdrawalCount: 1
              configVars:
                expectWithdrawals: "| [{publicKey: .tasks.all_pubkeys.outputs.pubkeys[4], address: .tasks.depositor_wallet.outputs.childWallet.address, minAmount: 15900000000}]"

# key status:
# index 0: active  64 ETH (32 ETH EB), 0x00 withdrawal creds
# index 1: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 2: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 3: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 4: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 5: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 6: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 7: active  48 ETH (48 ETH EB), 0x02 withdrawal creds
# index 8: active  64 ETH (64 ETH EB), 0x02 withdrawal creds
# index 9: active  64 ETH (64 ETH EB), 0x02 withdrawal creds

##
## STEP 3: generate consolidations & wait for inclusion
##

# generate consolidations
- name: run_tasks
  title: "Generate consolidations & track inclusion"
  config:
    tasks:

    # generate self consolidation for key 5 & wait for inclusion
    - name: run_task_background
      title: "Generate self consolidation for key 5"
      timeout: 10m
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: generate_consolidations
          title: "Generate 1 self consolidation (key 5)"
          config:
            limitTotal: 1
            sourceStartIndex: 5
            sourceIndexCount: 1
            awaitReceipt: true
            failOnReject: true
            consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
          configVars:
            sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
            targetPublicKey: "tasks.all_pubkeys.outputs.pubkeys[5]"
            walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        
        foregroundTask:
          name: check_consensus_block_proposals
          title: "Wait for inclusion of self consolidation request for key 5"
          config:
            minConsolidationRequestCount: 1
          configVars:
            expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[5]}]"

    # wait for exitability
    - name: run_tasks
      title: "Wait for validators to be exitable (${{ tasks.get_specs.outputs.specs.SHARD_COMMITTEE_PERIOD }} epochs)"
      config:
        stopChildOnResult: true
        tasks:
        - name: check_consensus_validator_status
          title: "Get validator info for last key"
          id: last_validator_info
          timeout: 1m
          config:
            validatorStatus:
            - active_ongoing
          configVars:
            validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[-1]"
        - name: check_consensus_slot_range
          title: "Wait for validators to be exitable (epoch >= ${{ |(.tasks.last_validator_info.outputs.validator.validator.activation_epoch | tonumber) + (.tasks.get_specs.outputs.specs.SHARD_COMMITTEE_PERIOD | tonumber) }})"
          timeout: 28h  # 256 epochs = ~27.3h
          configVars:
            minEpochNumber: "|(.tasks.last_validator_info.outputs.validator.validator.activation_epoch | tonumber) + (.tasks.get_specs.outputs.specs.SHARD_COMMITTEE_PERIOD | tonumber)"

    - name: run_task_background
      title: "Generate consolidations & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: run_tasks
          title: "Generate consolidations & track inclusion"
          config:
            stopChildOnResult: false
            tasks:
            - name: generate_consolidations
              title: "Generate 1 consolidation (index 0 -> index 6)"
              config:
                limitTotal: 1
                sourceStartIndex: 0
                sourceIndexCount: 1
                awaitReceipt: true
                failOnReject: true
                consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
              configVars:
                sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
                targetValidatorIndex: "tasks.validator_info_6.outputs.validator.index | tonumber"
                walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
            
            - name: generate_consolidations
              title: "Generate 1 consolidation (index 1 -> index 5)"
              config:
                limitTotal: 1
                sourceStartIndex: 1
                sourceIndexCount: 1
                awaitReceipt: true
                failOnReject: true
                consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
              configVars:
                sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
                targetValidatorIndex: "tasks.validator_info_5.outputs.validator.index | tonumber"
                walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
            
            - name: generate_consolidations
              title: "Generate 1 consolidation (index 5 -> index 7)"
              config:
                limitTotal: 1
                sourceStartIndex: 5
                sourceIndexCount: 1
                awaitReceipt: true
                failOnReject: true
                consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
              configVars:
                sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
                targetValidatorIndex: "tasks.validator_info_7.outputs.validator.index | tonumber"
                walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"

            - name: generate_consolidations
              title: "Generate 2 consolidation (index 3+4 -> index 7)"
              config:
                limitTotal: 2
                sourceStartIndex: 3
                sourceIndexCount: 2
                awaitReceipt: true
                failOnReject: true
                consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
              configVars:
                sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
                targetValidatorIndex: "tasks.validator_info_7.outputs.validator.index | tonumber"
                walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        
        foregroundTask:
          name: run_tasks_concurrent
          title: "Wait for inclusion of all consolidations"
          timeout: 30m
          config:
            tasks:
            - name: check_consensus_block_proposals
              title: "Wait for consolidation request 0->6 inclusion"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[0]}]"
            - name: check_consensus_block_proposals
              title: "Wait for consolidation request 1->5 inclusion"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[1]}]"
            - name: check_consensus_block_proposals
              title: "Wait for consolidation request 5->7 inclusion"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[5]}]"
            - name: check_consensus_block_proposals
              title: "Wait for consolidation request 3->7 inclusion"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[3]}]"
            - name: check_consensus_block_proposals
              title: "Wait for consolidation request 4->7 inclusion"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[4]}]"
      
    # slash validator #3 before consolidation started
    - name: run_task_background
      title: "Generate slashing for key #3 & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: run_tasks
          title: "Generate slashing for key 3"
          config:
            stopChildOnResult: false
            tasks:
            - name: generate_slashings
              title: "Generate attester slashing for key 3"
              config:
                slashingType: "attester"
                limitTotal: 1
                startIndex: 3
                indexCount: 1
              configVars:
                mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        foregroundTask:
          name: check_consensus_block_proposals
          title: "Wait for slashing inclusion for key 3"
          config:
            minSlashingCount: 1
            minAttesterSlashingCount: 1
          configVars:
            expectSlashings: "| [{publicKey: .tasks.all_pubkeys.outputs.pubkeys[3], slashingType: \"attester\"}]"

    # wait for validator #1 exit
    - name: check_consensus_validator_status
      title: "Wait for validator #1 to exit (start of consolidation 1->5)"
      timeout: 28h
      config:
        validatorStatus:
        - exited_unslashed
        - withdrawal_possible
        - withdrawal_done
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[1]"
      
    # check validator #0 still active (consolidation ignored due to 0x00 credentials)
    - name: check_consensus_validator_status
      title: "Check validator #0 is still active (consolidation ignored)"
      timeout: 10s
      config:
        validatorStatus:
        - active_ongoing
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[0]"

    # wait for other consolidations
    - name: run_task_matrix
      title: "Wait for start of consolidations for keys 4-5"
      timeout: 1h
      configVars:
        matrixValues: "tasks.all_pubkeys.outputs.pubkeys[4:5]"
      config:
        runConcurrent: true
        matrixVar: "validatorPubkey"
        task:
          name: check_consensus_validator_status
          title: "Wait for validator to exit (${validatorPubkey})"
          config:
            validatorStatus:
            - exited_unslashed
            - withdrawal_possible
            - withdrawal_done
          configVars:
            validatorPubKey: "validatorPubkey"

# key status:
# index 0: active  64 ETH (32 ETH EB), 0x00 withdrawal creds
# index 1: exited  32 ETH (32 ETH EB), 0x01 withdrawal creds (consolidating to 5)
# index 2: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 3: slashed  31 ETH (31 ETH EB), 0x01 withdrawal creds (slashed, consolidating to 7)
# index 4: exited  32 ETH (0 ETH EB), 0x01 withdrawal creds (consolidating to 7)
# index 5: exited  32 ETH (0 ETH EB), 0x02 withdrawal creds (consolidating to 7)
# index 6: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 7: active  48 ETH (48 ETH EB), 0x02 withdrawal creds
# index 8: active  64 ETH (64 ETH EB), 0x02 withdrawal creds
# index 9: active  64 ETH (64 ETH EB), 0x02 withdrawal creds

##
## STEP 4: generate el triggered withdrawals & wait for inclusion
##

# generate EL triggered withdrawals
- name: run_tasks
  title: "Generate EL triggered withdrawals & track inclusion"
  config:
    stopChildOnResult: false
    tasks:

    - name: run_task_background
      title: "Generate EL triggered withdrawal for key 8 & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: run_tasks
          title: "Generate EL triggered partial withdrawal for key 8"
          config:
            stopChildOnResult: false
            tasks:
            - name: run_shell
              id: el_withdrawal_8
              title: "Build calldata (withdraw 32 ETH)"
              config:
                envVars:
                  pubkey: "tasks.all_pubkeys.outputs.pubkeys[8]"
                command: |
                  amount="32"
                  amount=$(expr ${amount:-1} \* 1000000000)
                  amount=$(printf "%016x" $amount)

                  pubkey=$(echo $pubkey | jq -r .)

                  echo "Pubkey: $pubkey"
                  echo "Amount: $amount"
                  echo "::set-out txCalldata $pubkey$amount"
            - name: generate_transaction
              title: "Send partial withdrawal transaction for key 8"
              config:
                targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
                feeCap: 50000000000 # 50 gwei
                gasLimit: 1000000
                amount: "500000000000000000" # 0.5 ETH
                failOnReject: true
              configVars:
                privateKey: "tasks.depositor_wallet.outputs.childWallet.privkey"
                callData: "tasks.el_withdrawal_8.outputs.txCalldata"
        foregroundTask:
          name: run_tasks_concurrent
          title: "Wait for inclusion of EL triggered withdrawal for key 8"
          config:
            tasks:
            - name: check_consensus_block_proposals
              title: "Wait for EL triggered withdrawal request for key 8"
              config:
                minWithdrawalRequestCount: 1
              configVars:
                expectWithdrawalRequests: "| [{validatorPubkey: .tasks.all_pubkeys.outputs.pubkeys[8], sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, amount: 32000000000}]"
            - name: check_consensus_block_proposals
              title: "Wait for EL triggered withdrawal for key 8"
              config:
                minWithdrawalCount: 1
              configVars:
                expectWithdrawals: "| [{publicKey: .tasks.all_pubkeys.outputs.pubkeys[8], address: .tasks.depositor_wallet.outputs.childWallet.address, minAmount: 31900000000}]"

# generate EL triggered exit
- name: run_tasks
  title: "Generate EL triggered exit & track inclusion"
  config:
    stopChildOnResult: false
    tasks:

    - name: run_task_background
      title: "Generate EL triggered withdrawal for key 0 + 2 + 9 & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: run_tasks
          title: "Generate EL triggered exit for key 0 + 2 + 8"
          config:
            stopChildOnResult: false
            tasks:
            - name: run_shell
              id: el_exit_0
              title: "Build calldata (exit key 0)"
              config:
                envVars:
                  pubkey: "tasks.all_pubkeys.outputs.pubkeys[0]"
                command: |
                  amount="0"
                  amount=$(expr ${amount:-1} \* 1000000000)
                  amount=$(printf "%016x" $amount)

                  pubkey=$(echo $pubkey | jq -r .)

                  echo "Pubkey: $pubkey"
                  echo "Amount: $amount"
                  echo "::set-out txCalldata $pubkey$amount"
            - name: generate_transaction
              title: "Send exit transaction for key 0"
              config:
                targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
                feeCap: 50000000000 # 50 gwei
                gasLimit: 1000000
                amount: "500000000000000000" # 0.5 ETH
                failOnReject: true
              configVars:
                privateKey: "tasks.depositor_wallet.outputs.childWallet.privkey"
                callData: "tasks.el_exit_0.outputs.txCalldata"
            - name: run_shell
              id: el_exit_2
              title: "Build calldata (exit key 2)"
              config:
                envVars:
                  pubkey: "tasks.all_pubkeys.outputs.pubkeys[2]"
                command: |
                  amount="0"
                  amount=$(expr ${amount:-1} \* 1000000000)
                  amount=$(printf "%016x" $amount)

                  pubkey=$(echo $pubkey | jq -r .)

                  echo "Pubkey: $pubkey"
                  echo "Amount: $amount"
                  echo "::set-out txCalldata $pubkey$amount"
            - name: generate_transaction
              title: "Send exit transaction for key 2"
              config:
                targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
                feeCap: 50000000000 # 50 gwei
                gasLimit: 1000000
                amount: "500000000000000000" # 0.5 ETH
                failOnReject: true
              configVars:
                privateKey: "tasks.depositor_wallet.outputs.childWallet.privkey"
                callData: "tasks.el_exit_2.outputs.txCalldata"
            - name: run_shell
              id: el_exit_9
              title: "Build calldata (exit key 9)"
              config:
                envVars:
                  pubkey: "tasks.all_pubkeys.outputs.pubkeys[9]"
                command: |
                  amount="0"
                  amount=$(expr ${amount:-1} \* 1000000000)
                  amount=$(printf "%016x" $amount)

                  pubkey=$(echo $pubkey | jq -r .)

                  echo "Pubkey: $pubkey"
                  echo "Amount: $amount"
                  echo "::set-out txCalldata $pubkey$amount"
            - name: generate_transaction
              title: "Send exit transaction for key 9"
              config:
                targetAddress: "0x00000961Ef480Eb55e80D19ad83579A64c007002"
                feeCap: 50000000000 # 50 gwei
                gasLimit: 1000000
                amount: "500000000000000000" # 0.5 ETH
                failOnReject: true
              configVars:
                privateKey: "tasks.depositor_wallet.outputs.childWallet.privkey"
                callData: "tasks.el_exit_9.outputs.txCalldata"
        foregroundTask:
          name: run_tasks_concurrent
          title: "Wait for inclusion of EL triggered exit for key 0+9"
          config:
            tasks:
            - name: check_consensus_block_proposals
              title: "Wait for EL triggered exit request for key 0"
              config:
                minWithdrawalRequestCount: 1
              configVars:
                expectWithdrawalRequests: "| [{validatorPubkey: .tasks.all_pubkeys.outputs.pubkeys[0], sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, amount: 0}]"
            - name: check_consensus_block_proposals
              title: "Wait for EL triggered exit request for key 2"
              config:
                minWithdrawalRequestCount: 1
              configVars:
                expectWithdrawalRequests: "| [{validatorPubkey: .tasks.all_pubkeys.outputs.pubkeys[2], sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, amount: 0}]"
            - name: check_consensus_validator_status
              title: "Wait for validator #2 to exit"
              timeout: 1h
              config:
                validatorStatus:
                - exited_unslashed
                - withdrawal_possible
                - withdrawal_done
              configVars:
                validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[2]"
            - name: check_consensus_block_proposals
              title: "Wait for EL triggered exit request for key 9"
              config:
                minWithdrawalRequestCount: 1
              configVars:
                expectWithdrawalRequests: "| [{validatorPubkey: .tasks.all_pubkeys.outputs.pubkeys[9], sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, amount: 0}]"
            - name: check_consensus_validator_status
              title: "Wait for validator #9 to exit"
              timeout: 1h
              config:
                validatorStatus:
                - exited_unslashed
                - withdrawal_possible
                - withdrawal_done
              configVars:
                validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[9]"


# key status:
# index 0: active  64 ETH (32 ETH EB), 0x00 withdrawal creds
# index 1: exited  32 ETH (32 ETH EB), 0x01 withdrawal creds (consolidating to 5)
# index 2: exited  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 3: slashed  31 ETH (31 ETH EB), 0x01 withdrawal creds (slashed, consolidating to 7)
# index 4: exited  32 ETH (0 ETH EB), 0x01 withdrawal creds (consolidating to 7)
# index 5: exited  32 ETH (0 ETH EB), 0x02 withdrawal creds (consolidating to 7)
# index 6: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 7: active  48 ETH (48 ETH EB), 0x02 withdrawal creds
# index 8: active  32 ETH (32 ETH EB), 0x02 withdrawal creds
# index 9: exited  64 ETH (64 ETH EB), 0x02 withdrawal creds


##
## STEP 5: await consolidation completion & check validator status
##

# check validator status
- name: run_tasks
  title: "Await consolidation completion & check validator status"
  config:
    tasks:
    # validator #0: 64 ETH (32 ETH EB), 0x00 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #0 info"
      id: validator_info_0
      timeout: 5m
      config:
        validatorStatus:
        - active_ongoing
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[0]"
    - name: run_shell
      title: "Check validator #0 status: 64 ETH (32 ETH EB), 0x00 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_0.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -lt 63900000000 ]; then
            echo "Balance too low! expected: > 63.9 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "32000000000" ]; then
            echo "Effective balance too low! expected: 32 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x00"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x00*, got: $withdrawal_creds"
            exit 1
          fi
    
    # validator #1: 0 ETH (0 ETH EB), 0x01 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #1 info"
      id: validator_info_1
      timeout: 1h
      config:
        validatorStatus:
        - withdrawal_done
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[1]"
    - name: run_shell
      title: "Check validator #1 status: 0 ETH (0 ETH EB), 0x00 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_1.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -gt 100000000 ]; then
            echo "Balance too high! expected: < 0.1 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "0" ]; then
            echo "Effective balance too high! expected: 0 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x01"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x01*, got: $withdrawal_creds"
            exit 1
          fi
    
    # validator #4: 0 ETH (0 ETH EB), 0x00 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #4 info"
      id: validator_info_4
      timeout: 1h
      config:
        validatorStatus:
        - withdrawal_done
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[4]"
    - name: run_shell
      title: "Check validator #4 status: 0 ETH (0 ETH EB), 0x00 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_4.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -gt 100000000 ]; then
            echo "Balance too high! expected: < 0.1 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "0" ]; then
            echo "Effective balance too high! expected: 0 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x01"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x01*, got: $withdrawal_creds"
            exit 1
          fi
    
    # validator #5: 0 ETH (0 ETH EB), 0x02 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #5 info"
      id: validator_info_5
      timeout: 1h
      config:
        validatorStatus:
        - withdrawal_done
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[5]"
    - name: run_shell
      title: "Check validator #5 status: 0 ETH (0 ETH EB), 0x01 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_5.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -gt 100000000 ]; then
            echo "Balance too high! expected: < 0.1 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "0" ]; then
            echo "Effective balance too high! expected: 0 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
            exit 1
          fi
    
    # validator #7: 111.9 ETH (111 ETH EB), 0x02 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #7 info"
      id: validator_info_7
      timeout: 8h
      config:
        validatorStatus:
        - active_ongoing
        minValidatorBalance: 111800000000
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[7]"
    - name: run_shell
      title: "Check validator #7 status: 111.9 ETH (111 ETH EB), 0x02 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_7.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -lt 111800000000 ]; then
            echo "Balance too low! expected: > 111.8 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "111000000000" ]; then
            echo "Effective balance too low! expected: 111 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
            exit 1
          fi

# key status:
# index 0: active  64 ETH (32 ETH EB), 0x00 withdrawal creds
# index 1: exited  0 ETH (0 ETH EB), 0x01 withdrawal creds (consolidated to 5)
# index 2: exited  0 ETH (0 ETH EB), 0x01 withdrawal creds
# index 3: slashed  31 ETH (31 ETH EB), 0x01 withdrawal creds (slashed, consolidated to 7)
# index 4: exited  0 ETH (0 ETH EB), 0x01 withdrawal creds (consolidated to 7)
# index 5: exited  0 ETH (0 ETH EB), 0x02 withdrawal creds (consolidated to 7)
# index 6: active  32 ETH (32 ETH EB), 0x01 withdrawal creds
# index 7: active  111.9 ETH (111 ETH EB), 0x02 withdrawal creds
# index 8: active  32 ETH (32 ETH EB), 0x02 withdrawal creds
# index 9: exited  0 ETH (0 ETH EB), 0x02 withdrawal creds


##
## STEP 6: change withdrawal credentials (0x01->0x02) via self consolidation & wait for inclusion
##

# change withdrawal credentials
- name: run_tasks
  title: "Change withdrawal credentials (0x01->0x02) via self consolidation & track inclusion"
  config:
    tasks:

    - name: run_task_background
      title: "Change withdrawal credentials (0x01->0x02) via self consolidation & track inclusion"
      config:
        onBackgroundComplete: failOrIgnore
        backgroundTask:
          name: generate_consolidations
          title: "Generate 1 self consolidation (index 6 -> index 6)"
          config:
            limitTotal: 1
            sourceStartIndex: 6
            sourceIndexCount: 1
            awaitReceipt: true
            failOnReject: true
            consolidationContract: "0x0000BBdDc7CE488642fb579F8B00f3a590007251"
          configVars:
            sourceMnemonic: "tasks.test_mnemonic.outputs.mnemonic"
            targetValidatorIndex: "tasks.validator_info_6.outputs.validator.index | tonumber"
            walletPrivkey: "tasks.depositor_wallet.outputs.childWallet.privkey"
        
        foregroundTask:
          name: run_tasks_concurrent
          title: "Wait for inclusion of self consolidation request"
          config:
            tasks:
            - name: check_consensus_block_proposals
              title: "Wait for inclusion of self consolidation request for key 6"
              config:
                minConsolidationRequestCount: 1
              configVars:
                expectConsolidationRequests: "| [{sourceAddress: .tasks.depositor_wallet.outputs.childWallet.address, sourcePubkey: .tasks.all_pubkeys.outputs.pubkeys[6]}]"

    # validator #6: 42 ETH (42 ETH EB), 0x02 withdrawal creds
    - name: check_consensus_validator_status
      title: "Get validator #6 info"
      id: validator_info_6_b
      timeout: 1h
      config:
        validatorStatus:
        - active_ongoing
        minValidatorBalance: 31900000000
        withdrawalCredsPrefix: "0x02"
      configVars:
        validatorPubKey: "tasks.all_pubkeys.outputs.pubkeys[6]"
    - name: run_shell
      title: "Check validator #6 status: 31.9 ETH (32 ETH EB), 0x00 withdrawal creds"
      config:
        envVars: 
          validator: "tasks.validator_info_6_b.outputs.validator"
        command: |
          balance=$(echo "$validator" | jq -r '.balance')
          if [ "$balance" -lt 31900000000 ]; then
            echo "Balance too high! expected: > 31.9 ETH, got: $balance Gwei"
            exit 1
          fi

          effective_balance=$(echo "$validator" | jq -r '.validator.effective_balance')
          if [ "$effective_balance" != "32000000000" ]; then
            echo "Effective balance too high! expected: 32 ETH, got: $effective_balance Gwei"
            exit 1
          fi

          withdrawal_creds=$(echo "$validator" | jq -r '.validator.withdrawal_credentials')
          if [[ ! "$withdrawal_creds" == "0x02"* ]]; then
            echo "Invalid withdrawal credentials! expected: 0x02*, got: $withdrawal_creds"
            exit 1
          fi



cleanupTasks:
- name: run_tasks
  title: "Generate BLS changes, & exit all test validators"
  config:
    stopChildOnResult: false
    tasks:
    - name: generate_bls_changes
      title: "Generate bls changes for all test validators"
      config:
        limitTotal: 10
        indexCount: 10
      configVars:
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"
        targetAddress: "tasks.depositor_wallet.outputs.childWallet.address"
    - name: generate_exits
      title: "Exit all test validators"
      config:
        limitTotal: 10
        indexCount: 10
      configVars:
        mnemonic: "tasks.test_mnemonic.outputs.mnemonic"


================================================
FILE: .github/workflows/lint.yml
================================================
name: Lint
on:
  push:
    branches:
      - main
      - 'release/**'
  pull_request:
    branches:
      - main
      - 'release/**'
    types:
      - opened
      - reopened
      - synchronize
      - ready_for_review
  workflow_dispatch:

jobs:
  lint:
    if: ${{ github.event_name == 'push' || !github.event.pull_request.draft }}
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v5
        with:
          fetch-depth: 0
      - uses: actions/setup-go@v6
        with:
          go-version: '1.25'

      - name: Install golangci-lint
        uses: golangci/golangci-lint-action@v8
        with:
          version: 'v2.4.0'

      - run: make lint


================================================
FILE: .github/workflows/manifest.yml
================================================
name: Manifest Check
on:
  push:
    branches:
      - main
      - 'release/**'
    paths:
      - 'go.mod'
  pull_request:
    branches:
      - main
      - 'release/**'
    paths:
      - 'go.mod'
    types:
      - opened
      - reopened
      - synchronize
      - ready_for_review
  workflow_dispatch:

jobs:
  ManifestCheck:
    if: github.event.pull_request.draft == false
    runs-on: ubuntu-24.04

    steps:
      - uses: actions/checkout@v5
      - uses: actions/setup-go@v6
        with:
          go-version: '1.24'
      - run: make downloader
      - run: echo $ModModified
      - run: ./build/bin/downloader manifest-verify --chain bsc
      - run: ./build/bin/downloader manifest-verify --chain chapel


================================================
FILE: .github/workflows/qa-clean-exit-block-downloading.yml
================================================
name: QA - Clean exit (block downloading)

on:
#  push:
#    branches:
#      - 'release/3.*'
#  schedule:
#    - cron: '0 8 * * 1-6'  # Run every day at 08:00 AM UTC except Sunday
  workflow_dispatch:     # Run manually

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  clean-exit-bd-test:
    runs-on: [self-hosted, qa, Ethereum, tip-tracking]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      WORKING_TIME_SECONDS: 600
      CHAIN: mainnet

    steps:
    - name: Check out repository
      uses: actions/checkout@v5

    - name: Clean Erigon Build Directory
      run: |
        make clean

    - name: Build Erigon
      run: |
        make erigon
      working-directory: ${{ github.workspace }}

    - name: Pause the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

    - name: Save Erigon Chaindata Directory
      id: save_chaindata_step
      run: |
        mv $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

    - name: Run Erigon, send ctrl-c and check for clean exiting
      id: test_step
      run: |
        set +e # Disable exit on error
        
        # Run Erigon, send ctrl-c and check logs
        python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py \
            ${{ github.workspace }}/build/bin $ERIGON_REFERENCE_DATA_DIR $WORKING_TIME_SECONDS Erigon3
  
        # Capture monitoring script exit status
        test_exit_status=$?

        # Save the subsection reached status
        echo "test_executed=true" >> $GITHUB_OUTPUT
        
        # Clean up Erigon process if it's still running
        if kill -0 $ERIGON_PID 2> /dev/null; then
          echo "Terminating Erigon"
          kill $ERIGON_PID
          wait $ERIGON_PID
        fi
        
        # Check test runner script exit status
        if [ $test_exit_status -eq 0 ]; then
          echo "Tests completed successfully"
          echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
        else
          echo "Error detected during tests"
          echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
        fi

    - name: Save test results
      if: steps.test_step.outputs.test_executed == 'true'
      env:
        TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
      run: |       
        db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
        if [ -z "$db_version" ]; then
          db_version="no-version"
        fi
        
        python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
          --repo erigon \
          --commit $(git rev-parse HEAD) \
          --branch ${{ github.ref_name }} \
          --test_name clean-exit-block-downloading \
          --chain $CHAIN \
          --runner ${{ runner.name }} \
          --db_version $db_version \
          --outcome $TEST_RESULT \
          --result_file ${{ github.workspace }}/result.json

    - name: Upload test results
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: test-results
        path: ${{ github.workspace }}/result.json

    - name: Restore Erigon Chaindata Directory
      if: ${{ always() }}
      run: |
        if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
        fi

    - name: Resume the Erigon instance dedicated to db maintenance
      if: ${{ always() }}
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

    - name: Action for Success
      if: steps.test_step.outputs.TEST_RESULT == 'success'
      run: echo "::notice::Tests completed successfully"

    - name: Action for Not Success
      if: steps.test_step.outputs.TEST_RESULT != 'success'
      run: |
        echo "::error::Error detected during tests"
        exit 1

================================================
FILE: .github/workflows/qa-clean-exit-snapshot-downloading.yml
================================================
name: QA - Clean exit (snapshot downloading)

on:
#  push:
#    branches:
#      - main
#      - 'release/3.*'
#  pull_request:
#    branches:
#      - main
#      - 'release/3.*'
#    types:
#      - ready_for_review
  workflow_dispatch:     # Run manually

jobs:
  clean-exit-sd-test:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}', github.workflow, github.run_id) ||
          format('{0}-{1}', github.workflow, github.ref)
        }}
      cancel-in-progress: true
    runs-on: [self-hosted, qa, long-running]
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      WORKING_TIME_SECONDS: 600
      CHAIN: mainnet

    steps:
    - name: Check out repository
      uses: actions/checkout@v5

    - name: Clean Erigon Build & Data Directories
      run: |
        make clean
        rm -rf $ERIGON_DATA_DIR

    - name: Build Erigon
      run: |
        make erigon
      working-directory: ${{ github.workspace }}

    - name: Pause the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

    - name: Run Erigon, send ctrl-c and check for clean exiting
      id: test_step
      run: |
        set +e # Disable exit on error
        
        # Run Erigon, send ctrl-c and check logs
        python3 $ERIGON_QA_PATH/test_system/qa-tests/clean-exit/run_and_check_clean_exit.py \
          ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $WORKING_TIME_SECONDS Erigon3
  
        # Capture monitoring script exit status
        test_exit_status=$?
        
        # Save the subsection reached status        
        echo "test_executed=true" >> $GITHUB_OUTPUT
        
        # Clean up Erigon process if it's still running
        if kill -0 $ERIGON_PID 2> /dev/null; then
          echo "Terminating Erigon"
          kill $ERIGON_PID
          wait $ERIGON_PID
        fi
        
        # Check test runner script exit status
        if [ $test_exit_status -eq 0 ]; then
          echo "Tests completed successfully"
          echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
        else
          echo "Error detected during tests"
          echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
        fi

    - name: Clean up Erigon data directory
      if: always()
      run: |
        rm -rf $ERIGON_DATA_DIR

    - name: Resume the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

    - name: Save test results
      if: steps.test_step.outputs.test_executed == 'true'
      env:
        TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
      run: | 
        python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
          --repo erigon \
          --commit $(git rev-parse HEAD) \
          --branch ${{ github.ref_name }} \
          --test_name clean-exit-snapshot-downloading \
          --chain $CHAIN \
          --runner ${{ runner.name }} \
          --outcome $TEST_RESULT \
          --result_file ${{ github.workspace }}/result.json

    - name: Upload test results
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: test-results
        path: ${{ github.workspace }}/result.json

    - name: Action for Success
      if: steps.test_step.outputs.TEST_RESULT == 'success'
      run: echo "::notice::Tests completed successfully"

    - name: Action for Not Success
      if: steps.test_step.outputs.TEST_RESULT != 'success'
      run: |
        echo "::error::Error detected during tests"
        exit 1

================================================
FILE: .github/workflows/qa-constrained-tip-tracking.yml
================================================
name: QA - Constrained Tip tracking

on:
  schedule:
    - cron: '0 20 * * 0'  # Run on Sunday at 08:00 PM UTC
  workflow_dispatch:     # Run manually

jobs:
  constrained-tip-tracking-test:
    timeout-minutes: 600
    strategy:
      fail-fast: false
      matrix:
        include:
          - chain: mainnet
            backend: Erigon3
            cgroup_name: constrained_res_32G
            prune_mode: archive_node
          - chain: bor-mainnet
            backend: Polygon
            cgroup_name: constrained_res_64G
            prune_mode: full_node
    runs-on: [ self-hosted, qa, "${{ matrix.backend }}", tip-tracking ]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TRACKING_TIME_SECONDS: 14400 # 4 hours
      TOTAL_TIME_SECONDS: 28800 # 8 hours
      CHAIN: ${{ matrix.chain }}
      CGROUP_NAME: ${{ matrix.cgroup_name }}
      PRUNE_MODE: ${{ matrix.prune_mode }}

    steps:
    - name: Check out repository
      uses: actions/checkout@v5

    - name: Clean Erigon Build Directory
      run: |
        make clean

    - name: Build Erigon
      run: |
        make erigon
      working-directory: ${{ github.workspace }}

    - name: Pause the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

    - name: Save Erigon Chaindata Directory
      id: save_chaindata_step
      run: |
        mv $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

    - name: Run Erigon, wait sync and check ability to maintain sync
      id: test_step
      run: |
        set +e # Disable exit on error
        
        # Run Erigon under memory constraints, wait sync and check ability to maintain sync
        cgexec -g memory:$CGROUP_NAME python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
          ${{ github.workspace }}/build/bin $ERIGON_REFERENCE_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 $CHAIN $PRUNE_MODE statistics
  
        # Capture monitoring script exit status
        test_exit_status=$?
        
        # Save the subsection reached status
        echo "test_executed=true" >> $GITHUB_OUTPUT
        
        # Clean up Erigon process if it's still running
        if kill -0 $ERIGON_PID 2> /dev/null; then
          echo "Terminating Erigon"
          kill $ERIGON_PID
          wait $ERIGON_PID
        fi

        # Check test runner script exit status
        if [ $test_exit_status -eq 0 ]; then
          echo "Tests completed successfully"
          echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
        else
          echo "Error detected during tests"
          echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
        fi

    - name: Upload Downloader Torrent Client Status
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: torrent-client-status-${{ env.CHAIN }}
        path: torrent-client-status.txt

    - name: Save test results
      if: steps.test_step.outputs.test_executed == 'true'
      env:
        TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
      run: |
        db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
        if [ -z "$db_version" ]; then
          db_version="no-version"
        fi
        
        python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
          --repo erigon \
          --commit $(git rev-parse HEAD) \
          --branch ${{ github.ref_name }} \
          --test_name constrained-tip-tracking \
          --chain $CHAIN \
          --runner ${{ runner.name }} \
          --db_version $db_version \
          --outcome $TEST_RESULT \
          --result_file ${{ github.workspace }}/result-$CHAIN.json

    - name: Upload test results
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: test-results-${{ env.CHAIN }}
        path: ${{ github.workspace }}/result-${{ env.CHAIN }}.json

    - name: Upload Erigon full log
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: erigon-logs-${{ env.CHAIN }}
        path: |
          ${{ env.ERIGON_REFERENCE_DATA_DIR }}/logs/
          ${{ env.ERIGON_REFERENCE_DATA_DIR }}/proc_stat.log

    - name: Restore Erigon Chaindata Directory
      if: ${{ always() }}
      run: |
        if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
        fi

    - name: Resume the Erigon instance dedicated to db maintenance
      if: ${{ always() }}
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

    - name: Action for Success
      if: steps.test_step.outputs.TEST_RESULT == 'success'
      run: echo "::notice::Tests completed successfully"

    - name: Action for Not Success
      if: steps.test_step.outputs.TEST_RESULT != 'success'
      run: |
        echo "::error::Error detected during tests"
        exit 1


================================================
FILE: .github/workflows/qa-rpc-integration-tests-gnosis.yml
================================================
name: QA - RPC Integration Tests (Gnosis)

on:
  workflow_dispatch:     # Run manually


jobs:
  gnosis-rpc-integ-tests:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}', github.workflow, github.run_id) ||
          format('{0}-{1}', github.workflow, github.ref)
        }}
      cancel-in-progress: true
    runs-on: [ self-hosted, qa, Gnosis, rpc-integration ]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/gnosis-reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      ERIGON_ASSERT: true
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      CHAIN: gnosis

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build Directory
        run: |
          make clean

      - name: Build Erigon RPCDaemon and integration
        run: |
          make rpcdaemon integration
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Save Erigon Chaindata Directory
        id: save_chaindata_step
        run: |
          rm -rf $ERIGON_TESTBED_AREA/chaindata-prev || true
          echo "Backup chaindata"
          cp -r $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

      - name: Run Migrations
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Running migrations on datadir..."
          ./integration run_migrations --datadir $ERIGON_REFERENCE_DATA_DIR --chain $CHAIN

      - name: Run RpcDaemon
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Starting RpcDaemon..."
          
          ./rpcdaemon --datadir $ERIGON_REFERENCE_DATA_DIR --http.api admin,debug,eth,parity,erigon,trace,web3,txpool,ots,net --ws > erigon.log 2>&1 &

          RPC_DAEMON_PID=$!          
          RPC_DAEMON_EXIT_STATUS=$?
          echo "RPC_DAEMON_PID=$RPC_DAEMON_PID" >> $GITHUB_ENV
          echo "rpc_daemon_started=true" >> $GITHUB_OUTPUT
          
          sleep 5
          tail erigon.log
          
          if [ $RPC_DAEMON_EXIT_STATUS -ne 0 ]; then            
            echo "RpcDaemon failed to start"
            echo "::error::Error detected during tests: RpcDaemon failed to start"
            exit 1
          fi
          echo "RpcDaemon started"

      - name: Wait for port 8545 to be opened
        run: |
          for i in {1..30}; do
            if nc -z localhost 8545; then
              echo "Port 8545 is open"
              break
            fi
            echo "Waiting for port 8545 to open..."
            sleep 10
          done
          if ! nc -z localhost 8545; then
            echo "Port 8545 did not open in time"
            echo "::error::Error detected during tests: Port 8545 did not open in time"
            exit 1
          fi

      - name: Run RPC Integration Tests
        id: test_step
        run: |
          commit=$(git -C ${{runner.workspace}}/erigon rev-parse --short HEAD)
          TEST_RESULT_DIR="$RPC_PAST_TEST_DIR/gnosis_$(date +%Y%m%d_%H%M%S)_integration_${commit}_http/"
          echo "TEST_RESULT_DIR=$TEST_RESULT_DIR" >> $GITHUB_ENV

          chmod +x ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_gnosis.sh

          set +e # Disable exit on error for test run
          ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_gnosis.sh ${{ runner.workspace }} $TEST_RESULT_DIR
          test_exit_status=$? # Capture test runner script exit status
          set -e # Re-enable exit on error after test run

          echo "test_executed=true" >> $GITHUB_OUTPUT

          echo
          if [ $test_exit_status -eq 0 ]; then
            echo "RPC tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during RPC tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Stop Erigon RpcDaemon
        if: always()
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          # Clean up rpcdaemon process if it's still running
          if [ -n "$RPC_DAEMON_PID" ] && kill -0 $RPC_DAEMON_PID 2> /dev/null; then
            echo "RpcDaemon stopping..."
            kill $RPC_DAEMON_PID
            echo "RpcDaemon stopped"
          else
            echo "RpcDaemon has already terminated"
          fi

      - name: Restore Erigon Chaindata Directory
        if: ${{ always() }}
        run: |
          if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ] && [ "${{ steps.save_chaindata_step.outcome }}" == "success" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          echo "Restore chaindata"
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
          fi

      - name: Resume the Erigon instance dedicated to db maintenance
        if: ${{ always() }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: ${{ env.TEST_RESULT_DIR }}

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        working-directory: ${{ github.workspace }}
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
          if [ -z "$db_version" ]; then
            db_version="no-version"
          fi
          
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name rpc-integration-tests --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT #--result_file ${{ github.workspace }}/result-$CHAIN.json

      - name: Action to check failure condition
        if: failure()
        run: |
          if [ "${{ steps.test_step.outputs.test_executed }}" != "true" ]; then
            echo "::error::Test not executed, workflow failed for infrastructure reasons"
          fi
          exit 1

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Failure
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests: some tests failed, check the logs or the artifacts for more details"
          exit 1



================================================
FILE: .github/workflows/qa-rpc-integration-tests-latest.yml
================================================
name: QA - RPC Integration Tests Latest

on:
  workflow_dispatch:     # Run manually
#  push:
#    branches:
#      - main
#  pull_request:
#    branches:
#      - main
#    types:
#      - opened
#      - reopened
#      - synchronize
#      - ready_for_review


jobs:
  mainnet-rpc-integ-tests-latest:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}', github.workflow, github.run_id) ||
          format('{0}-{1}', github.workflow, github.ref)
        }}
      cancel-in-progress: true
    runs-on: [ self-hosted, qa, Ethereum, rpc-latest-erigon ]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TOTAL_TIME_SECONDS: 900 # 15 minutes
      REFERENCE_SYSTEM_HOST_ADDRESS: 157.180.55.78:8545
      ERIGON_ASSERT: true
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      CHAIN: mainnet

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build Directory
        run: |
          make clean

      - name: Build Erigon and integration
        run: |
          make erigon integration
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Save Erigon Chaindata Directory
        id: save_chaindata_step
        run: |
          rm -rf $ERIGON_TESTBED_AREA/chaindata-prev || true
          echo "Backup chaindata"
          cp -r $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

      - name: Run Migrations
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Running migrations on datadir..."
          ./integration run_migrations --datadir $ERIGON_REFERENCE_DATA_DIR --chain $CHAIN

      - name: Run Erigon version and wait for sync 
        id: pre_test_step
        run: |
          set +e # Disable exit on error
          
          # Launch the testbed Erigon instance & test its ability to sync 
          python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-sync/run_and_chase_tip.py \
            --build-dir=${{ github.workspace }}/build/bin \
            --data-dir=$ERIGON_REFERENCE_DATA_DIR \
            --total-time=$TOTAL_TIME_SECONDS \
            --chain=$CHAIN \
            --node-type=minimal_node \
            --stop-erigon=False
        
          # Capture monitoring script exit status
          test_exit_status=$?
        
          # Save the subsection reached status
          echo "test_executed=true" >> $GITHUB_OUTPUT
        
          # Check test runner script exit status
          if [ $test_exit_status -eq 0 ]; then
             echo "Tip-chasing completed successfully"
             echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
             echo "Tip-chasing encountered an error test aborted"
             echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
             exit 1
          fi

      - name: Run RPC Integration Tests
        id: test_step
        run: |
          commit=$(git -C ${{runner.workspace}}/erigon rev-parse --short HEAD)
          TEST_RESULT_DIR="$RPC_PAST_TEST_DIR/mainnet_$(date +%Y%m%d_%H%M%S)_integration_${commit}_http/"
          echo "TEST_RESULT_DIR=$TEST_RESULT_DIR" >> $GITHUB_ENV

          chmod +x ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_ethereum_latest.sh
          
          set +e # Disable exit on error for test run
          ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_ethereum_latest.sh ${{ runner.workspace }} $TEST_RESULT_DIR $REFERENCE_SYSTEM_HOST_ADDRESS 
          test_exit_status=$? # Capture test runner script exit status
          set -e # Re-enable exit on error after test run

          echo "test_executed=true" >> $GITHUB_OUTPUT

          if [ $test_exit_status -eq 0 ]; then
            echo "RPC tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during RPC tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Stop Erigon 
        if: always()
        run: |
          # the erigon pid is stored in erigon.pid file
          ERIGON_PID=$(cat ./erigon.pid)
          # Clean up rpcdaemon process if it's still running
          if [ -n "$ERIGON_PID" ] && kill -0 $ERIGON_PID 2> /dev/null; then
            echo "Erigon stopping..."
            kill $ERIGON_PID
            sleep 5
            echo "Erigon stopped"
          else
            echo "Erigon has already terminated"
          fi

      - name: Restore Erigon Chaindata Directory
        if: ${{ always() }}
        run: |
          if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ] && [ "${{ steps.save_chaindata_step.outcome }}" == "success" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          echo "Restore chaindata"
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
          fi

      - name: Resume the Erigon instance dedicated to db maintenance
        if: ${{ always() }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: ${{ env.TEST_RESULT_DIR }}

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        working-directory: ${{ github.workspace }}
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
          if [ -z "$db_version" ]; then
            db_version="no-version"
          fi
          
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name rpc-integration-tests --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT #--result_file ${{ github.workspace }}/result-$CHAIN.json

      - name: Action to check failure condition
        if: failure()
        run: |
          if [ "${{ steps.test_step.outputs.test_executed }}" != "true" ]; then
            echo "::error::Test not executed, workflow failed for infrastructure reasons"
          fi
          exit 1

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Failure
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests: some tests failed, check the logs or the artifacts for more details"
          exit 1



================================================
FILE: .github/workflows/qa-rpc-integration-tests-polygon.yml
================================================
name: QA - RPC Integration Tests (Polygon)

on:
  workflow_dispatch:     # Run manually


jobs:
  bor-mainnet-rpc-integ-tests:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}', github.workflow, github.run_id) ||
          format('{0}-{1}', github.workflow, github.ref)
        }}
      cancel-in-progress: true
    runs-on: [ self-hosted, qa, Polygon, rpc-integration ]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      ERIGON_ASSERT: true
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      CHAIN: bor-mainnet

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build Directory
        run: |
          make clean

      - name: Build Erigon RPCDaemon and integration
        run: |
          make rpcdaemon integration
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Save Erigon Chaindata Directory
        id: save_chaindata_step
        run: |
          rm -rf $ERIGON_TESTBED_AREA/chaindata-prev || true
          echo "Backup chaindata"
          cp -r $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

      - name: Run Migrations
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Running migrations on datadir..."
          ./integration run_migrations --datadir $ERIGON_REFERENCE_DATA_DIR --chain $CHAIN

      - name: Run RpcDaemon
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Starting RpcDaemon..."
          
          ./rpcdaemon --datadir $ERIGON_REFERENCE_DATA_DIR --http.api bor,admin,debug,eth,parity,erigon,trace,web3,txpool,ots,net --ws > erigon.log 2>&1 &

          RPC_DAEMON_PID=$!          
          RPC_DAEMON_EXIT_STATUS=$?
          echo "RPC_DAEMON_PID=$RPC_DAEMON_PID" >> $GITHUB_ENV
          echo "rpc_daemon_started=true" >> $GITHUB_OUTPUT
          
          sleep 5
          tail erigon.log
          
          if [ $RPC_DAEMON_EXIT_STATUS -ne 0 ]; then            
            echo "RpcDaemon failed to start"
            echo "::error::Error detected during tests: RpcDaemon failed to start"
            exit 1
          fi
          echo "RpcDaemon started"

      - name: Wait for port 8545 to be opened
        run: |
          for i in {1..30}; do
            if nc -z localhost 8545; then
              echo "Port 8545 is open"
              break
            fi
            echo "Waiting for port 8545 to open..."
            sleep 10
          done
          if ! nc -z localhost 8545; then
            echo "Port 8545 did not open in time"
            echo "::error::Error detected during tests: Port 8545 did not open in time"
            exit 1
          fi

      - name: Run RPC Integration Tests
        id: test_step
        run: |
          commit=$(git -C ${{runner.workspace}}/erigon rev-parse --short HEAD)
          TEST_RESULT_DIR="$RPC_PAST_TEST_DIR/polygon_$(date +%Y%m%d_%H%M%S)_integration_${commit}_http/"
          echo "TEST_RESULT_DIR=$TEST_RESULT_DIR" >> $GITHUB_ENV

          chmod +x ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_polygon.sh
          
          set +e # Disable exit on error for test run
          ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_polygon.sh ${{ runner.workspace }} $TEST_RESULT_DIR
          test_exit_status=$? # Capture test runner script exit status
          set -e # Re-enable exit on error after test run

          echo "test_executed=true" >> $GITHUB_OUTPUT

          echo
          if [ $test_exit_status -eq 0 ]; then
            echo "RPC tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during RPC tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Stop Erigon RpcDaemon
        if: always()
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          # Clean up rpcdaemon process if it's still running
          if [ -n "$RPC_DAEMON_PID" ] && kill -0 $RPC_DAEMON_PID 2> /dev/null; then
            echo "RpcDaemon stopping..."
            kill $RPC_DAEMON_PID
            echo "RpcDaemon stopped"
          else
            echo "RpcDaemon has already terminated"
          fi

      - name: Restore Erigon Chaindata Directory
        if: ${{ always() }}
        run: |
          if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ] && [ "${{ steps.save_chaindata_step.outcome }}" == "success" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          echo "Restore chaindata"
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
          fi

      - name: Resume the Erigon instance dedicated to db maintenance
        if: ${{ always() }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: ${{ env.TEST_RESULT_DIR }}

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        working-directory: ${{ github.workspace }}
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
          if [ -z "$db_version" ]; then
            db_version="no-version"
          fi
          
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name rpc-integration-tests --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT #--result_file ${{ github.workspace }}/result-$CHAIN.json

      - name: Action to check failure condition
        if: failure()
        run: |
          if [ "${{ steps.test_step.outputs.test_executed }}" != "true" ]; then
            echo "::error::Test not executed, workflow failed for infrastructure reasons"
          fi
          exit 1

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Failure
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests: some tests failed, check the logs or the artifacts for more details"
          exit 1



================================================
FILE: .github/workflows/qa-rpc-integration-tests.yml
================================================
name: QA - RPC Integration Tests

on:
  workflow_dispatch:     # Run manually

jobs:
  mainnet-rpc-integ-tests:
    concurrency:
      group: >-
        ${{
          (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/heads/release/')) && 
          format('{0}-{1}', github.workflow, github.run_id) ||
          format('{0}-{1}', github.workflow, github.ref)
        }}
      cancel-in-progress: true
    runs-on: [ self-hosted, qa, Ethereum, rpc-integration ]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      ERIGON_ASSERT: true
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      CHAIN: mainnet

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build Directory
        run: |
          make clean

      - name: Build Erigon RPCDaemon and integration
        run: |
          make rpcdaemon integration
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Save Erigon Chaindata Directory
        id: save_chaindata_step
        run: |
          rm -rf $ERIGON_TESTBED_AREA/chaindata-prev || true
          echo "Backup chaindata"
          cp -r $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

      - name: Run Migrations
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Running migrations on datadir..."
          ./integration run_migrations --datadir $ERIGON_REFERENCE_DATA_DIR --chain $CHAIN

      - name: Run RpcDaemon
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Starting RpcDaemon..."
          
          ./rpcdaemon --datadir $ERIGON_REFERENCE_DATA_DIR --http.api admin,debug,eth,parity,erigon,trace,web3,txpool,ots,net --ws > erigon.log 2>&1 &

          RPC_DAEMON_PID=$!          
          RPC_DAEMON_EXIT_STATUS=$?
          echo "RPC_DAEMON_PID=$RPC_DAEMON_PID" >> $GITHUB_ENV
          echo "rpc_daemon_started=true" >> $GITHUB_OUTPUT
          
          sleep 5
          tail erigon.log
          
          if [ $RPC_DAEMON_EXIT_STATUS -ne 0 ]; then            
            echo "RpcDaemon failed to start"
            echo "::error::Error detected during tests: RpcDaemon failed to start"
            exit 1
          fi
          echo "RpcDaemon started"

      - name: Wait for port 8545 to be opened
        run: |
          for i in {1..30}; do
            if nc -z localhost 8545; then
              echo "Port 8545 is open"
              break
            fi
            echo "Waiting for port 8545 to open..."
            sleep 10
          done
          if ! nc -z localhost 8545; then
            echo "Port 8545 did not open in time"
            echo "::error::Error detected during tests: Port 8545 did not open in time"
            exit 1
          fi

      - name: Run RPC Integration Tests
        id: test_step
        run: |
          commit=$(git -C ${{runner.workspace}}/erigon rev-parse --short HEAD)
          TEST_RESULT_DIR="$RPC_PAST_TEST_DIR/mainnet_$(date +%Y%m%d_%H%M%S)_integration_${commit}_http/"
          echo "TEST_RESULT_DIR=$TEST_RESULT_DIR" >> $GITHUB_ENV

          chmod +x ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_ethereum.sh
          
          set +e # Disable exit on error for test run
          ${{ runner.workspace }}/erigon/.github/workflows/scripts/run_rpc_tests_ethereum.sh ${{ runner.workspace }} $TEST_RESULT_DIR
          test_exit_status=$? # Capture test runner script exit status
          set -e # Re-enable exit on error after test run

          echo "test_executed=true" >> $GITHUB_OUTPUT

          echo
          if [ $test_exit_status -eq 0 ]; then
            echo "RPC tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during RPC tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Stop Erigon RpcDaemon
        if: always()
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          # Clean up rpcdaemon process if it's still running
          if [ -n "$RPC_DAEMON_PID" ] && kill -0 $RPC_DAEMON_PID 2> /dev/null; then
            echo "RpcDaemon stopping..."
            kill $RPC_DAEMON_PID
            echo "RpcDaemon stopped"
          else
            echo "RpcDaemon has already terminated"
          fi

      - name: Restore Erigon Chaindata Directory
        if: ${{ always() }}
        run: |
          if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ] && [ "${{ steps.save_chaindata_step.outcome }}" == "success" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          echo "Restore chaindata"
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
          fi

      - name: Resume the Erigon instance dedicated to db maintenance
        if: ${{ always() }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: ${{ env.TEST_RESULT_DIR }}

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        working-directory: ${{ github.workspace }}
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DATA_DIR/../production.ini production erigon_repo_commit)
          if [ -z "$db_version" ]; then
            db_version="no-version"
          fi
          
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py --repo erigon --commit $(git rev-parse HEAD) --branch ${{ github.ref_name }} --test_name rpc-integration-tests --chain $CHAIN --runner ${{ runner.name }} --db_version $db_version --outcome $TEST_RESULT #--result_file ${{ github.workspace }}/result-$CHAIN.json

      - name: Action to check failure condition
        if: failure()
        run: |
          if [ "${{ steps.test_step.outputs.test_executed }}" != "true" ]; then
            echo "::error::Test not executed, workflow failed for infrastructure reasons"
          fi
          exit 1

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Failure
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests: some tests failed, check the logs or the artifacts for more details"
          exit 1



================================================
FILE: .github/workflows/qa-rpc-performance-tests.yml
================================================
name: QA - RPC Performance Tests

on:
  workflow_dispatch:
#  schedule:
#    - cron: '0 20 * * *'  # Run every night at 20:00 (08:00 PM) UTC

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

jobs:
  mainnet-rpc-perf-tests:
    runs-on: [ self-hosted, qa, Ethereum, rpc-performance ]
    env:
      ERIGON_REFERENCE_DIR: /opt/erigon-versions/reference-version
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_TESTBED_AREA: /opt/erigon-testbed
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      CHAIN: mainnet

    steps:
      - name: Checkout Erigon repository
        uses: actions/checkout@v5
        with:
          submodules: recursive
          fetch-depth: "0"

      - name: Checkout RPC Tests Repository & Install Requirements
        run: |
          rm -rf ${{runner.workspace}}/rpc-tests
          git -c advice.detachedHead=false clone --depth 1 --branch v1.78.0 https://github.com/erigontech/rpc-tests ${{runner.workspace}}/rpc-tests
          cd ${{runner.workspace}}/rpc-tests

      - name: Clean Erigon Build Directory
        run: |
          make clean

      - name: Build Erigon RPCDaemon
        run: |
          make rpcdaemon
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Save Erigon Chaindata Directory
        id: save_chaindata_step
        run: |
          rm -rf $ERIGON_TESTBED_AREA/chaindata-prev || true
          echo "Backup chaindata"
          cp -r $ERIGON_REFERENCE_DATA_DIR/chaindata $ERIGON_TESTBED_AREA/chaindata-prev

      - name: Run RpcDaemon
        id: rpcdaemon_running_step
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          echo "Starting RpcDaemon..."
          
          ./rpcdaemon --datadir $ERIGON_REFERENCE_DATA_DIR --http.api admin,debug,eth,parity,erigon,trace,web3,txpool,ots,net --ws > erigon.log 2>&1 &

          RPC_DAEMON_PID=$!          
          RPC_DAEMON_EXIT_STATUS=$?
          echo "RPC_DAEMON_PID=$RPC_DAEMON_PID" >> $GITHUB_ENV
          echo "rpc_daemon_started=true" >> $GITHUB_OUTPUT
          
          sleep 5
          tail erigon.log
          
          if [ $RPC_DAEMON_EXIT_STATUS -ne 0 ]; then            
            echo "RpcDaemon failed to start"
            echo "::error::Error detected during tests: RpcDaemon failed to start"
            exit 1
          fi
          echo "RpcDaemon started"

      - name: Wait for port 8545 to be opened
        run: |
          for i in {1..30}; do
            if nc -z localhost 8545; then
              echo "Port 8545 is open"
              break
            fi
            echo "Waiting for port 8545 to open..."
            sleep 10
          done
          if ! nc -z localhost 8545; then
            echo "Port 8545 did not open in time"
            echo "::error::Error detected during tests: Port 8545 did not open in time"
            exit 1
          fi

      - name: Run RPC Performance Tests
        id: test_step
        run: |
          set +e # Disable exit on error
          failed_test=0
          commit=$(git -C ${{runner.workspace}}/erigon rev-parse --short HEAD) # use ${{ github.sha }} or GITHUB_SHA
          past_test_dir=$RPC_PAST_TEST_DIR/mainnet_$(date +%Y%m%d_%H%M%S)_perf_$commit
          echo "past_test_dir=$past_test_dir" >> $GITHUB_ENV
          
          # Prepare historical test results directory
          mkdir -p $past_test_dir
          rm -rf $RPC_PAST_TEST_DIR/mainnet_bin  # we want only the latest binary files
          mkdir -p $RPC_PAST_TEST_DIR/mainnet_bin
          
          run_perf () {
            network=$1
            method=$2
            pattern=$3
            sequence=$4
          
            # clean temporary area
            cd ${{runner.workspace}}/rpc-tests/perf
            rm -rf ./reports/
          
            python3 ./run_perf_tests.py --blockchain "$network" \
                                      --test-type "$method" \
                                      --pattern-file pattern/"$network"/"$pattern".tar \
                                      --test-sequence "$sequence" \
                                      --repetitions 5 \
                                      --erigon-dir $ERIGON_REFERENCE_DATA_DIR \
                                      --silk-dir ${{runner.workspace}}/erigon \
                                      --test-mode 2 \
                                      --test-report \
                                      --json-report ./reports/mainnet/result.json \
                                      --testing-daemon erigon
          
            # Capture test runner script exit status
            perf_exit_status=$?
          
            # Preserve test results
            mv ${{runner.workspace}}/rpc-tests/perf/reports/mainnet/result.json ${{runner.workspace}}/rpc-tests/perf/reports/mainnet/erigon-$method-result.json
          
            # Detect the pre-built db version
            db_version=$(python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/prod_info.py $ERIGON_REFERENCE_DIR/production.ini production erigon_repo_commit)
          
            # Check test runner script exit status
            if [ $perf_exit_status -eq 0 ]; then           
              # save all vegeta binary report
              echo "Save current vegeta binary files"
              cp -r ${{runner.workspace}}/rpc-tests/perf/reports/bin $RPC_PAST_TEST_DIR/mainnet_bin
              
              echo "Save test result on DB"
              cd ${{runner.workspace}}/erigon
              python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
                --repo erigon \
                --branch ${{ github.ref_name }} \
                --commit $(git rev-parse HEAD) \
                --test_name rpc-performance-test-erigon-$method \
                --chain mainnet \
                --runner ${{ runner.name }} \
                --db_version $db_version \
                --outcome success \
                --result_file ${{runner.workspace}}/rpc-tests/perf/reports/mainnet/erigon-$method-result.json
              
              if [ $? -ne 0 ]; then
                failed_test=1
                echo "Failure saving test results on DB"
              fi
              
              echo "Execute Latency Percentile HDR Analysis"
              cd ${{runner.workspace}}/rpc-tests/perf/reports/mainnet/
              python3 $ERIGON_QA_PATH/test_system/qa-tests/rpc-tests/perf_hdr_analysis.py \
                --test_name erigon-$method \
                --input_file ./erigon-$method-result.json \
                --output_file ./erigon-$method-latency_hdr_analysis.pdf
            else
              failed_test=1
              cd ${{runner.workspace}}/erigon
              python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
                --repo erigon \
                --branch ${{ github.ref_name }} \
                --commit $(git rev-parse HEAD) \
                --test_name rpc-performance-test-erigon-$method \
                --chain mainnet \
                --runner ${{ runner.name }} \
                --db_version $db_version \
                --outcome failure
            fi
          
            # Save test results to a directory with timestamp and commit hash
            cp -r ${{runner.workspace}}/rpc-tests/perf/reports/mainnet $past_test_dir
          }

          # Launch the RPC performance test runner
          failed_test=0
          run_perf mainnet eth_call stress_test_eth_call_001_14M 1:1,100:30,1000:20,10000:20,20000:20
          run_perf mainnet eth_getLogs stress_test_eth_getLogs_15M 1:1,100:30,1000:20,10000:20,20000:20
          run_perf mainnet eth_getBalance stress_test_eth_getBalance_15M 1:1,100:30,1000:20,10000:20,20000:20
          run_perf mainnet eth_getBlockByHash stress_test_eth_getBlockByHash_14M 1:1,100:30,1000:20,5000:20
          run_perf mainnet eth_getBlockByNumber stress_test_eth_getBlockByNumber_13M 1:1,100:30,1000:20,5000:20
          run_perf mainnet eth_getTransactionByHash stress_test_eth_getTransactionByHash_13M 1:1,100:30,1000:20,10000:20
          run_perf mainnet eth_getTransactionReceipt stress_test_eth_getTransactionReceipt_14M 1:1,100:30,1000:20,5000:20,10000:20,20000:20
          run_perf mainnet eth_createAccessList stress_test_eth_createAccessList_16M 1:1,100:30,1000:20,10000:20,20000:20          
          run_perf mainnet debug_traceTransaction stress_test_debug_trace_transaction_21M 1:1,100:30,1000:20,5000:20          
          run_perf mainnet debug_storageRangeAt stress_test_debug_storageRangeAt_20M 1:1,100:30,1000:20,5000:20          
          
          # Save the subsection reached status
          
          echo "test_executed=true" >> $GITHUB_OUTPUT
          
          if [ $failed_test -eq 0 ]; then
                  echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
                  echo "Tests completed successfully"
          else
                  echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
                  echo "Error detected during tests"
          fi

      - name: Stop Erigon RpcDaemon
        if: always()
        working-directory: ${{ github.workspace }}/build/bin
        run: |
          # Clean up rpcdaemon process if it's still running
          if [ -n "$RPC_DAEMON_PID" ] && kill -0 $RPC_DAEMON_PID 2> /dev/null; then
            echo "RpcDaemon stopping..."
            kill $RPC_DAEMON_PID
            echo "RpcDaemon stopped"
          else
            echo "RpcDaemon has already terminated"
          fi

      - name: Restore Erigon Chaindata Directory
        if: ${{ always() }}
        run: |
          if [ -d "$ERIGON_TESTBED_AREA/chaindata-prev" ] && [ "${{ steps.save_chaindata_step.outcome }}" == "success" ]; then
          rm -rf $ERIGON_REFERENCE_DATA_DIR/chaindata
          echo "Restore chaindata"
          mv $ERIGON_TESTBED_AREA/chaindata-prev $ERIGON_REFERENCE_DATA_DIR/chaindata
          fi

      - name: Resume the Erigon instance dedicated to db maintenance
        if: ${{ always() }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Run change point analysis
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        working-directory: ${{runner.workspace}}/rpc-tests/perf/reports/mainnet
        run: |
          set +e # Disable exit on error
          open_change_points=0
          python3 $ERIGON_QA_PATH/test_system/qa-tests/change-points/change_point_analysis.py --repo erigon
          open_change_points=$?
          cp change_point_analysis.pdf $past_test_dir
          if [ $open_change_points -ne 0 ]; then
            echo "Change point analysis found points that need to be investigated"
            echo "::warning title=Change Point Analysis::Found change points that need to be investigated"
            #echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"  -- enable in the future
          fi

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results
          path: ${{ env.past_test_dir }}

      - name: Action to check failure condition
        if: failure()
        run: |
          if [ "${{ steps.test_step.outputs.test_executed }}" != "true" ]; then
            echo "::error::Test not executed, workflow failed for infrastructure reasons"
          fi
          exit 1

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Failure
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests"
          exit 1


================================================
FILE: .github/workflows/qa-rpc-test-bisection-tool.yml
================================================
name: QA - RPC Test Bisection Tool

on:
  workflow_dispatch:
    inputs:
      starting_commit:
        description: 'Commit where the test passes (good commit)'
        required: true
      ending_commit:
        description: 'Commit where the test fails (bad commit)'
        required: true
      test_name:
        description: 'Name of the test to run'
        required: true

jobs:
  rpc-test-bisect:
    runs-on: [self-hosted, qa, RpcSpecific]
    env:
      ERIGON_REFERENCE_DATA_DIR: /opt/erigon-versions/reference-version/datadir
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      RPC_PAST_TEST_DIR: /opt/rpc-past-tests
      CHAIN: mainnet

    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0  # Fetch all history for git bisect

      - name: Set up Git user
        run: |
          git config --global user.email "actions@github.com"
          git config --global user.name "GitHub Actions"

      - name: Create scripts directory
        run: mkdir -p $GITHUB_WORKSPACE/.github/scripts

      - name: Checkout RPC Tests Repository & Install Requirements
        run: |
          rm -rf $GITHUB_WORKSPACE/rpc-tests
          git -c advice.detachedHead=false clone --depth 1 --branch v1.61.0 https://github.com/erigontech/rpc-tests $GITHUB_WORKSPACE/rpc-tests
          cd $GITHUB_WORKSPACE/rpc-tests
          pip3 install -r requirements.txt

      - name: Create test script
        run: |
          cat << 'EOF' > $GITHUB_WORKSPACE/.github/scripts/test_script.sh
          #!/bin/bash

          set -e

          TEST_NAME="$1"

          # Move to the GitHub workspace
          cd $GITHUB_WORKSPACE

          # Build Erigon RPCDaemon
          make clean
          make rpcdaemon

          # Start RpcDaemon
          cd build/bin
          ./rpcdaemon --datadir $ERIGON_REFERENCE_DATA_DIR --http.api admin,debug,eth,parity,erigon,trace,web3,txpool,ots,net --ws --verbosity 1 > erigon.log 2>&1 &

          RPC_DAEMON_PID=$!
          echo "RPC_DAEMON_PID=$RPC_DAEMON_PID"

          # Wait for port 8545 to open
          for i in {1..30}; do
            if nc -z localhost 8545; then
              echo "Port 8545 is open"
              break
            fi
            echo "Waiting for port 8545 to open..."
            sleep 10
          done

          if ! nc -z localhost 8545; then
            echo "Port 8545 did not open in time"
            kill $RPC_DAEMON_PID
            exit 125  # Skip this commit
          fi

          # Run the specified test
          cd $GITHUB_WORKSPACE/rpc-tests/integration

          # Clean previous results
          rm -rf ./mainnet/results/

          # Run the test
          python3 ./run_tests.py -p 8545 --continue -f --json-diff -a $TEST_NAME

          TEST_EXIT_STATUS=$?

          # Stop RpcDaemon
          kill $RPC_DAEMON_PID

          # Exit with the test result
          if [ $TEST_EXIT_STATUS -eq 0 ]; then
            # Test passed
            exit 0
          else
            # Test failed
            exit 1
          fi
          EOF

      - name: Make test script executable
        run: chmod +x $GITHUB_WORKSPACE/.github/scripts/test_script.sh

      - name: Pause the Erigon instance dedicated to DB maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Start Git Bisect
        run: |
          git bisect start
          git bisect bad ${{ inputs.ending_commit }}
          git bisect good ${{ inputs.starting_commit }}

      - name: Run Git Bisect with Test Script
        id: bisect_run
        run: |
          set -o pipefail
          git bisect run $GITHUB_WORKSPACE/.github/scripts/test_script.sh ${{ inputs.test_name }}

      - name: Get Bisect Result
        if: success()
        id: bisect_result
        run: |
          BISECT_COMMIT=$(git rev-parse HEAD)
          BISECT_MESSAGE=$(git log -1 --pretty=format:"%h %s")
          echo "BISECT_COMMIT=$BISECT_COMMIT" >> $GITHUB_OUTPUT
          echo "BISECT_MESSAGE=$BISECT_MESSAGE" >> $GITHUB_OUTPUT
          git bisect reset

      - name: Resume the Erigon instance dedicated to DB maintenance
        if: always()
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Output Offending Commit
        if: success()
        run: |
          echo "The first bad commit is ${{ steps.bisect_result.outputs.BISECT_COMMIT }}"
          echo "Commit message: ${{ steps.bisect_result.outputs.BISECT_MESSAGE }}"


================================================
FILE: .github/workflows/qa-snap-download.yml
================================================
name: QA - Snapshot Download

on:
#  push:
#    branches:
#      - 'release/3.*'
#  schedule:
#    - cron: '0 20 * * 1-6'  # Run every night at 20:00 (08:00 PM) UTC except Sunday
  workflow_dispatch:     # Run manually

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

jobs:
  snap-download-test:
    runs-on: [self-hosted, qa, long-running]
    timeout-minutes: 500
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TOTAL_TIME_SECONDS: 28800 # 8 hours
      CHAIN: mainnet

    steps:
    - name: Check out repository
      uses: actions/checkout@v5

    - name: Clean Erigon Build & Data Directories
      run: |
        make clean
        rm -rf $ERIGON_DATA_DIR

    - name: Build Erigon
      run: |
        make erigon
      working-directory: ${{ github.workspace }}

    - name: Pause the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

    - name: Run Erigon and monitor snapshot downloading
      id: test_step
      run: |
        set +e # Disable exit on error
             
        # Run Erigon, monitor snapshot downloading and check logs
        python3 $ERIGON_QA_PATH/test_system/qa-tests/snap-download/run_and_check_snap_download.py \
          ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TOTAL_TIME_SECONDS Erigon3 $CHAIN
  
        # Capture monitoring script exit status
        test_exit_status=$?
        
        # Save the subsection reached status
        echo "test_executed=true" >> "$GITHUB_OUTPUT"
        
        # Clean up Erigon process if it's still running
        if kill -0 $ERIGON_PID 2> /dev/null; then
          echo "Terminating Erigon"
          kill $ERIGON_PID
          wait $ERIGON_PID
        fi
        
        # Check test runner script exit status
        if [ $test_exit_status -eq 0 ]; then
          echo "Tests completed successfully"
          echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
        else
          echo "Error detected during tests"
          echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
        fi

    - name: Upload Downloader Torrent Client Status
      if: always()
      uses: actions/upload-artifact@v4
      with:
        path: torrent-client-status.txt

    - name: Save test results
      if: steps.test_step.outputs.test_executed == 'true'
      env:
        TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
      run: |
        python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
          --repo erigon \
          --commit $(git rev-parse HEAD) \
          --branch ${{ github.ref_name }} \
          --test_name snap-download \
          --chain $CHAIN \
          --runner ${{ runner.name }} \
          --outcome $TEST_RESULT \
          --result_file ${{ github.workspace }}/result-$CHAIN.json

    - name: Upload test results
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: test-results
        path: |
          ${{ github.workspace }}/result-${{ env.CHAIN }}.json
          ${{ github.workspace }}/erigon_data/logs/

    - name: Clean up Erigon data directory
      if: always()
      run: |
        rm -rf $ERIGON_DATA_DIR

    - name: Resume the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

    - name: Action for Success
      if: steps.test_step.outputs.TEST_RESULT == 'success'
      run: echo "::notice::Tests completed successfully"

    - name: Action for Not Success
      if: steps.test_step.outputs.TEST_RESULT != 'success'
      run: |
        echo "::error::Error detected during tests"
        exit 1

================================================
FILE: .github/workflows/qa-sync-from-scratch-minimal-node.yml
================================================
name: QA - Sync from scratch (minimal node)

on:
#  push:
#    branches:
#      - 'release/3.*'
#  schedule:
#    - cron: '0 0 * * *'  # Run every night at 00:00 AM UTC
  workflow_dispatch:     # Run manually

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

jobs:
  minimal-node-sync-from-scratch-test:
    runs-on: [self-hosted, qa, long-running]
    timeout-minutes: 1440  # 24 hours
    strategy:
      fail-fast: false
      matrix:
        chain: [ mainnet, gnosis ]  # Chain name as specified on the erigon command line
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      ERIGON_ASSERT: true
      TRACKING_TIME_SECONDS: 7200 # 2 hours
      TOTAL_TIME_SECONDS: 43200 # 18 hours
      CHAIN: ${{ matrix.chain }}

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build & Data Directories
        run: |
          make clean
          rm -rf $ERIGON_DATA_DIR

      - name: Build Erigon
        run: |
          make erigon
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Run Erigon and monitor chain sync
        id: test_step
        run: |
          set +e # Disable exit on error
          
          # Run Erigon, wait sync and check ability to maintain sync
          python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
            ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 $CHAIN minimal_node
          
          # Capture monitoring script exit status
          test_exit_status=$?
          
          # Save the subsection reached status
          echo "test_executed=true" >> "$GITHUB_OUTPUT"
          
          # Check test runner script exit status
          if [ $test_exit_status -eq 0 ]; then
            echo "Tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Upload Downloader Torrent Client Status
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: torrent-client-status-${{ env.CHAIN }}
          path: torrent-client-status.txt

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
            --repo erigon \
            --commit $(git rev-parse HEAD) \
            --branch ${{ github.ref_name }} \
            --test_name sync-from-scratch-minimal-node \
            --chain $CHAIN \
            --runner ${{ runner.name }} \
            --outcome $TEST_RESULT \
            --result_file ${{ github.workspace }}/result-$CHAIN.json

      - name: Upload test results
        if: steps.test_step.outputs.test_executed == 'true'
        uses: actions/upload-artifact@v4
        with:
          name: test-results-${{ env.CHAIN }}
          path: |
            ${{ github.workspace }}/result-${{ env.CHAIN }}.json
            ${{ github.workspace }}/erigon_data/logs/

      - name: Clean up Erigon data directory
        if: always()
        run: |
          rm -rf $ERIGON_DATA_DIR

      - name: Resume the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

      - name: Action for Success
        if: steps.test_step.outputs.TEST_RESULT == 'success'
        run: echo "::notice::Tests completed successfully"

      - name: Action for Not Success
        if: steps.test_step.outputs.TEST_RESULT != 'success'
        run: |
          echo "::error::Error detected during tests"
          exit 1


================================================
FILE: .github/workflows/qa-sync-from-scratch.yml
================================================
name: QA - Sync from scratch

on:
#  push:
#    branches:
#      - 'release/3.*'
#  schedule:
#    - cron: '0 0 * * 0'  # Run on Sunday at 00:00 AM UTC
  workflow_dispatch:     # Run manually

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false


jobs:
  sync-from-scratch-test:
    runs-on: [self-hosted, qa, long-running]
    timeout-minutes: 1440  # 24 hours
    strategy:
      fail-fast: false
      matrix:
        chain: [ sepolia, holesky, amoy, chiado ]  # Chain name as specified on the erigon command line
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TRACKING_TIME_SECONDS: 7200 # 2 hours
      TOTAL_TIME_SECONDS: 43200 # 12 hours
      CHAIN: ${{ matrix.chain }}
      ERIGON_ASSERT: true

    steps:
    - name: Check out repository
      uses: actions/checkout@v5

    - name: Clean Erigon Build & Data Directories
      run: |
        make clean
        rm -rf $ERIGON_DATA_DIR

    - name: Build Erigon
      run: |
        make erigon
      working-directory: ${{ github.workspace }}

    - name: Pause the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

    - name: Run Erigon and monitor chain sync
      id: test_step
      run: |
        set +e # Disable exit on error
             
        # Run Erigon, wait sync and check ability to maintain sync
        python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
          ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 $CHAIN
        
        # Capture monitoring script exit status
        test_exit_status=$?
        
        # Save the subsection reached status
        echo "test_executed=true" >> "$GITHUB_OUTPUT"
        
        # Check test runner script exit status
        if [ $test_exit_status -eq 0 ]; then
          echo "Tests completed successfully"
          echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
        else
          echo "Error detected during tests"
          echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
        fi

    - name: Upload Downloader Torrent Client Status
      if: always()
      uses: actions/upload-artifact@v4
      with:
        name: torrent-client-status-${{ env.CHAIN }}
        path: torrent-client-status.txt

    - name: Save test results
      if: steps.test_step.outputs.test_executed == 'true'
      env:
        TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
      run: |
        python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
          --repo erigon \
          --commit $(git rev-parse HEAD) \
          --branch ${{ github.ref_name }} \
          --test_name sync-from-scratch \
          --chain $CHAIN \
          --runner ${{ runner.name }} \
          --outcome $TEST_RESULT \
          --result_file ${{ github.workspace }}/result-$CHAIN.json

    - name: Upload test results
      if: steps.test_step.outputs.test_executed == 'true'
      uses: actions/upload-artifact@v4
      with:
        name: test-results-${{ env.CHAIN }}
        path: |
          ${{ github.workspace }}/result-${{ env.CHAIN }}.json
          ${{ github.workspace }}/erigon_data/logs/

    - name: Clean up Erigon data directory
      if: always()
      run: |
        rm -rf $ERIGON_DATA_DIR

    - name: Resume the Erigon instance dedicated to db maintenance
      run: |
        python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true

    - name: Action for Success
      if: steps.test_step.outputs.TEST_RESULT == 'success'
      run: echo "::notice::Tests completed successfully"

    - name: Action for Not Success
      if: steps.test_step.outputs.TEST_RESULT != 'success'
      run: |
        echo "::error::Error detected during tests"
        exit 1


================================================
FILE: .github/workflows/qa-sync-test-bisection-tool.yml
================================================
name: QA - Sync Test Bisection Tool

on:
  workflow_dispatch:
    inputs:
      starting_commit:
        description: 'Commit where the test passes (good commit)'
        required: true
      ending_commit:
        description: 'Commit where the test fails (bad commit)'
        required: true
      chain:
        description: 'Chain to test (default: mainnet)'
        required: false
        default: 'mainnet'

jobs:
  sync-test-bisect:
    runs-on: [self-hosted, qa, long-running]
    timeout-minutes: 7200  # 5 days
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TRACKING_TIME_SECONDS: 120 # 2 minutes
      TOTAL_TIME_SECONDS: 28800 # 8 hours

    steps:
      - name: Checkout repository
        uses: actions/checkout@v5
        with:
          fetch-depth: 0  # Fetch all history for git bisect

      - name: Set up Git user
        run: |
          git config --global user.email "actions@github.com"
          git config --global user.name "GitHub Actions"

      - name: Create scripts directory
        run: mkdir -p $GITHUB_WORKSPACE/.github/scripts

      - name: Create test script
        run: |
          cat << 'EOF' > $GITHUB_WORKSPACE/.github/scripts/test_script.sh
          #!/bin/bash

          set -e

          CHAIN="$1"

          # Move to the GitHub workspace
          cd $GITHUB_WORKSPACE

          # Build Erigon RPCDaemon
          make clean
          rm -rf $ERIGON_DATA_DIR
          make erigon

          # Run Erigon and wait sync
          cd build/bin
          python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
            ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 $CHAIN minimal_node

          # Capture monitoring script exit status
          TEST_EXIT_STATUS=$?

          # Exit with the test result
          if [ $TEST_EXIT_STATUS -eq 0 ]; then
            # Test passed
            exit 0
          else
            # Test failed
            exit 1
          fi
          EOF

      - name: Make test script executable
        run: chmod +x $GITHUB_WORKSPACE/.github/scripts/test_script.sh

      - name: Pause the Erigon instance dedicated to DB maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Start Git Bisect
        run: |
          git bisect start
          git bisect bad ${{ inputs.ending_commit }}
          git bisect good ${{ inputs.starting_commit }}

      - name: Run Git Bisect with Test Script
        id: bisect_run
        run: |
          set -o pipefail
          git bisect run $GITHUB_WORKSPACE/.github/scripts/test_script.sh ${{ inputs.chain }}

      - name: Get Bisect Result
        if: success()
        id: bisect_result
        run: |
          BISECT_COMMIT=$(git rev-parse HEAD)
          BISECT_MESSAGE=$(git log -1 --pretty=format:"%h %s")
          echo "BISECT_COMMIT=$BISECT_COMMIT" >> $GITHUB_OUTPUT
          echo "BISECT_MESSAGE=$BISECT_MESSAGE" >> $GITHUB_OUTPUT
          git bisect reset

      - name: Output Offending Commit
        if: success()
        run: |
          echo "The first bad commit is ${{ steps.bisect_result.outputs.BISECT_COMMIT }}"
          echo "Commit message: ${{ steps.bisect_result.outputs.BISECT_MESSAGE }}"

      - name: Clean up Erigon data directory
        if: always()
        run: |
          rm -rf $ERIGON_DATA_DIR

      - name: Resume the Erigon instance dedicated to DB maintenance
        if: always()
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/resume_production.py || true


================================================
FILE: .github/workflows/qa-sync-with-externalcl.yml
================================================
name: QA - Sync with external CL

on:
#  push:
#    branches:
#      - 'release/3.*'
#  schedule:
#    - cron: "0 8 * * 0" # Run on Sunday at 08:00 AM UTC
  workflow_dispatch: # Run manually

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: false

jobs:
  sync-with-externalcl:
    runs-on: [self-hosted, qa, linux, X64, long-running]
    timeout-minutes: 1440 # 24 hours
    strategy:
      fail-fast: false
      matrix:
        client: [lighthouse, prysm]
        chain: [mainnet, gnosis]
        exclude:
          - client: prysm
            chain: gnosis
    env:
      ERIGON_DATA_DIR: ${{ github.workspace }}/erigon_data
      CL_DATA_DIR: ${{ github.workspace }}/consensus
      ERIGON_QA_PATH: /home/qarunner/erigon-qa
      TRACKING_TIME_SECONDS: 3600 # 1 hour
      TOTAL_TIME_SECONDS: 28800 # 8 hours
      ERIGON_ASSERT: true

    steps:
      - name: Check out repository
        uses: actions/checkout@v5

      - name: Clean Erigon Build & Data Directories
        run: |
          make clean
          rm -rf $ERIGON_DATA_DIR

      - name: Install ${{ matrix.client }} and generate JWT secret
        run: |
          mkdir -p $CL_DATA_DIR
          if [ "${{ matrix.client }}" == "lighthouse" ]; then
            curl -LO https://github.com/sigp/lighthouse/releases/download/v7.1.0/lighthouse-v7.1.0-x86_64-unknown-linux-gnu.tar.gz
            tar -xvf lighthouse-v7.1.0-x86_64-unknown-linux-gnu.tar.gz -C $CL_DATA_DIR
            rm lighthouse-v7.1.0-x86_64-unknown-linux-gnu.tar.gz
          elif [ "${{ matrix.client }}" == "prysm" ]; then
            curl -L https://raw.githubusercontent.com/prysmaticlabs/prysm/master/prysm.sh -o $CL_DATA_DIR/prysm.sh
            chmod +x $CL_DATA_DIR/prysm.sh
          fi
          openssl rand -hex 32 > $CL_DATA_DIR/jwt.hex

      - name: Build Erigon
        run: |
          make erigon
        working-directory: ${{ github.workspace }}

      - name: Pause the Erigon instance dedicated to db maintenance
        run: |
          python3 $ERIGON_QA_PATH/test_system/db-producer/pause_production.py || true

      - name: Run Erigon and monitor chain sync
        id: test_step
        run: |
          set +e # Disable exit on error

          # Run Erigon, wait sync and check ability to maintain sync
          python3 $ERIGON_QA_PATH/test_system/qa-tests/tip-tracking/run_and_check_tip_tracking.py \
            ${{ github.workspace }}/build/bin $ERIGON_DATA_DIR $TRACKING_TIME_SECONDS $TOTAL_TIME_SECONDS Erigon3 ${{ matrix.chain }} minimal_node no_statistics ${{ matrix.client }} $CL_DATA_DIR

          # Capture monitoring script exit status
          test_exit_status=$?

          # Save the subsection reached status
          echo "test_executed=true" >> $GITHUB_OUTPUT

          # Check test runner script exit status
          if [ $test_exit_status -eq 0 ]; then
            echo "Tests completed successfully"
            echo "TEST_RESULT=success" >> "$GITHUB_OUTPUT"
          else
            echo "Error detected during tests"
            echo "TEST_RESULT=failure" >> "$GITHUB_OUTPUT"
          fi

      - name: Save test results
        if: steps.test_step.outputs.test_executed == 'true'
        env:
          TEST_RESULT: ${{ steps.test_step.outputs.TEST_RESULT }}
        run: |
          python3 $ERIGON_QA_PATH/test_system/qa-tests/uploads/upload_test_results.py \
            --repo erigon \
            --commit $(git rev-parse HEAD) \
            --branch ${{ github.ref_name }} \
            --test_name sync-from-scratch-${{ matrix.client }}-minimal-node \
            --chain ${{ matrix.chain }} \
            --runner ${{ runner.name }} \
            --outcome $TEST_RESULT \
            --result_file ${{ github.workspace }}/result-${{ matrix.chain }}.json

      - name: Upload test results (Lighthouse)
        if: ${{ steps.test_step.outputs.test_executed == 'true' && matrix.client == 'lighthouse' }}
        uses: actions/upload
Download .txt
Showing preview only (380K chars total). Download the full file or copy to clipboard to get everything.
gitextract_5uxqjddf/

├── .buildkite/
│   ├── hooks/
│   │   └── pre-command
│   └── pipeline.yml
├── .dockerignore
├── .gitattributes
├── .github/
│   ├── CONTRIBUTING.md
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug.md
│   │   ├── feature.md
│   │   └── question.md
│   ├── dependabot.yml
│   ├── no-response.yml
│   ├── stale.yml
│   └── workflows/
│       ├── backups-dashboards.yml
│       ├── check.yml
│       ├── ci-cd-main-branch-docker-images.yml
│       ├── ci.yml
│       ├── docker-image-remove.yml
│       ├── docker-tags.yml
│       ├── kurtosis/
│       │   ├── deposit-request.io
│       │   ├── eip7702-test.io
│       │   ├── eip7702-txpool-invalidation.io
│       │   ├── el-triggered-consolidation-of-consolidations.io
│       │   ├── el-triggered-consolidations-test.io
│       │   ├── el-triggered-exit.io
│       │   ├── el-triggered-withdrawal.io
│       │   ├── fast_lifecycle.io
│       │   ├── fusaka.io
│       │   ├── pectra.io
│       │   ├── regular-assertoor.io
│       │   ├── txpool-assertoor-short.io
│       │   ├── txpool-assertoor.io
│       │   └── validator-lifecycle-test-v3.io
│       ├── lint.yml
│       ├── manifest.yml
│       ├── qa-clean-exit-block-downloading.yml
│       ├── qa-clean-exit-snapshot-downloading.yml
│       ├── qa-constrained-tip-tracking.yml
│       ├── qa-rpc-integration-tests-gnosis.yml
│       ├── qa-rpc-integration-tests-latest.yml
│       ├── qa-rpc-integration-tests-polygon.yml
│       ├── qa-rpc-integration-tests.yml
│       ├── qa-rpc-performance-tests.yml
│       ├── qa-rpc-test-bisection-tool.yml
│       ├── qa-snap-download.yml
│       ├── qa-sync-from-scratch-minimal-node.yml
│       ├── qa-sync-from-scratch.yml
│       ├── qa-sync-test-bisection-tool.yml
│       ├── qa-sync-with-externalcl.yml
│       ├── qa-test-report.yml
│       ├── qa-tip-tracking-gnosis.yml
│       ├── qa-tip-tracking-polygon.yml
│       ├── qa-tip-tracking.yml
│       ├── qa-txpool-performance-test.yml
│       ├── release.yml
│       ├── reusable-release-build-debian-pkg.yml
│       ├── scripts/
│       │   ├── run_rpc_tests.sh
│       │   ├── run_rpc_tests_ethereum.sh
│       │   ├── run_rpc_tests_ethereum_latest.sh
│       │   ├── run_rpc_tests_gnosis.sh
│       │   ├── run_rpc_tests_polygon.sh
│       │   └── test_report/
│       │       ├── debug.ts
│       │       ├── generate-test-report.ts
│       │       ├── package.json
│       │       └── tsconfig.json
│       ├── test-all-erigon-race.yml
│       ├── test-all-erigon.yml
│       ├── test-erigon-is-library.yml
│       ├── test-hive-eest.yml
│       ├── test-hive.yml
│       ├── test-integration-caplin.yml
│       └── test-kurtosis-assertoor.yml
├── .gitignore
├── .gitmodules
├── .golangci.yml
├── .readthedocs.yml
├── AUTHORS
├── COPYING
├── ChangeLog.md
├── Dockerfile
├── Makefile
├── README.md
├── RELEASE_INSTRUCTIONS.md
├── cl/
│   ├── abstract/
│   │   ├── beacon_state.go
│   │   └── mock_services/
│   │       ├── beacon_state_mock.go
│   │       ├── beacon_state_mutator_mock.go
│   │       └── beacon_state_reader_mock.go
│   ├── aggregation/
│   │   ├── mock_services/
│   │   │   └── aggregation_pool_mock.go
│   │   ├── pool.go
│   │   ├── pool_impl.go
│   │   └── pool_test.go
│   ├── antiquary/
│   │   ├── antiquary.go
│   │   ├── beacon_states_collector.go
│   │   ├── state_antiquary.go
│   │   ├── state_antiquary_test.go
│   │   ├── tests/
│   │   │   ├── test_data/
│   │   │   │   ├── bellatrix/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── blocks_10.ssz_snappy
│   │   │   │   │   ├── blocks_11.ssz_snappy
│   │   │   │   │   ├── blocks_12.ssz_snappy
│   │   │   │   │   ├── blocks_13.ssz_snappy
│   │   │   │   │   ├── blocks_14.ssz_snappy
│   │   │   │   │   ├── blocks_15.ssz_snappy
│   │   │   │   │   ├── blocks_16.ssz_snappy
│   │   │   │   │   ├── blocks_17.ssz_snappy
│   │   │   │   │   ├── blocks_18.ssz_snappy
│   │   │   │   │   ├── blocks_19.ssz_snappy
│   │   │   │   │   ├── blocks_2.ssz_snappy
│   │   │   │   │   ├── blocks_20.ssz_snappy
│   │   │   │   │   ├── blocks_21.ssz_snappy
│   │   │   │   │   ├── blocks_22.ssz_snappy
│   │   │   │   │   ├── blocks_23.ssz_snappy
│   │   │   │   │   ├── blocks_24.ssz_snappy
│   │   │   │   │   ├── blocks_25.ssz_snappy
│   │   │   │   │   ├── blocks_26.ssz_snappy
│   │   │   │   │   ├── blocks_27.ssz_snappy
│   │   │   │   │   ├── blocks_28.ssz_snappy
│   │   │   │   │   ├── blocks_29.ssz_snappy
│   │   │   │   │   ├── blocks_3.ssz_snappy
│   │   │   │   │   ├── blocks_30.ssz_snappy
│   │   │   │   │   ├── blocks_31.ssz_snappy
│   │   │   │   │   ├── blocks_32.ssz_snappy
│   │   │   │   │   ├── blocks_33.ssz_snappy
│   │   │   │   │   ├── blocks_34.ssz_snappy
│   │   │   │   │   ├── blocks_35.ssz_snappy
│   │   │   │   │   ├── blocks_36.ssz_snappy
│   │   │   │   │   ├── blocks_37.ssz_snappy
│   │   │   │   │   ├── blocks_38.ssz_snappy
│   │   │   │   │   ├── blocks_39.ssz_snappy
│   │   │   │   │   ├── blocks_4.ssz_snappy
│   │   │   │   │   ├── blocks_40.ssz_snappy
│   │   │   │   │   ├── blocks_41.ssz_snappy
│   │   │   │   │   ├── blocks_42.ssz_snappy
│   │   │   │   │   ├── blocks_43.ssz_snappy
│   │   │   │   │   ├── blocks_44.ssz_snappy
│   │   │   │   │   ├── blocks_45.ssz_snappy
│   │   │   │   │   ├── blocks_46.ssz_snappy
│   │   │   │   │   ├── blocks_47.ssz_snappy
│   │   │   │   │   ├── blocks_48.ssz_snappy
│   │   │   │   │   ├── blocks_49.ssz_snappy
│   │   │   │   │   ├── blocks_5.ssz_snappy
│   │   │   │   │   ├── blocks_50.ssz_snappy
│   │   │   │   │   ├── blocks_51.ssz_snappy
│   │   │   │   │   ├── blocks_52.ssz_snappy
│   │   │   │   │   ├── blocks_53.ssz_snappy
│   │   │   │   │   ├── blocks_54.ssz_snappy
│   │   │   │   │   ├── blocks_55.ssz_snappy
│   │   │   │   │   ├── blocks_56.ssz_snappy
│   │   │   │   │   ├── blocks_57.ssz_snappy
│   │   │   │   │   ├── blocks_58.ssz_snappy
│   │   │   │   │   ├── blocks_59.ssz_snappy
│   │   │   │   │   ├── blocks_6.ssz_snappy
│   │   │   │   │   ├── blocks_60.ssz_snappy
│   │   │   │   │   ├── blocks_61.ssz_snappy
│   │   │   │   │   ├── blocks_62.ssz_snappy
│   │   │   │   │   ├── blocks_63.ssz_snappy
│   │   │   │   │   ├── blocks_64.ssz_snappy
│   │   │   │   │   ├── blocks_65.ssz_snappy
│   │   │   │   │   ├── blocks_66.ssz_snappy
│   │   │   │   │   ├── blocks_67.ssz_snappy
│   │   │   │   │   ├── blocks_68.ssz_snappy
│   │   │   │   │   ├── blocks_69.ssz_snappy
│   │   │   │   │   ├── blocks_7.ssz_snappy
│   │   │   │   │   ├── blocks_70.ssz_snappy
│   │   │   │   │   ├── blocks_71.ssz_snappy
│   │   │   │   │   ├── blocks_72.ssz_snappy
│   │   │   │   │   ├── blocks_73.ssz_snappy
│   │   │   │   │   ├── blocks_74.ssz_snappy
│   │   │   │   │   ├── blocks_75.ssz_snappy
│   │   │   │   │   ├── blocks_76.ssz_snappy
│   │   │   │   │   ├── blocks_77.ssz_snappy
│   │   │   │   │   ├── blocks_78.ssz_snappy
│   │   │   │   │   ├── blocks_79.ssz_snappy
│   │   │   │   │   ├── blocks_8.ssz_snappy
│   │   │   │   │   ├── blocks_80.ssz_snappy
│   │   │   │   │   ├── blocks_81.ssz_snappy
│   │   │   │   │   ├── blocks_82.ssz_snappy
│   │   │   │   │   ├── blocks_83.ssz_snappy
│   │   │   │   │   ├── blocks_84.ssz_snappy
│   │   │   │   │   ├── blocks_85.ssz_snappy
│   │   │   │   │   ├── blocks_86.ssz_snappy
│   │   │   │   │   ├── blocks_87.ssz_snappy
│   │   │   │   │   ├── blocks_88.ssz_snappy
│   │   │   │   │   ├── blocks_89.ssz_snappy
│   │   │   │   │   ├── blocks_9.ssz_snappy
│   │   │   │   │   ├── blocks_90.ssz_snappy
│   │   │   │   │   ├── blocks_91.ssz_snappy
│   │   │   │   │   ├── blocks_92.ssz_snappy
│   │   │   │   │   ├── blocks_93.ssz_snappy
│   │   │   │   │   ├── blocks_94.ssz_snappy
│   │   │   │   │   ├── blocks_95.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   ├── capella/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   ├── electra/
│   │   │   │   │   ├── blocks_0.ssz_snappy
│   │   │   │   │   ├── blocks_1.ssz_snappy
│   │   │   │   │   ├── meta.yaml
│   │   │   │   │   ├── post.ssz_snappy
│   │   │   │   │   └── pre.ssz_snappy
│   │   │   │   └── phase0/
│   │   │   │       ├── blocks_0.ssz_snappy
│   │   │   │       ├── blocks_1.ssz_snappy
│   │   │   │       ├── meta.yaml
│   │   │   │       ├── post.ssz_snappy
│   │   │   │       └── pre.ssz_snappy
│   │   │   └── tests.go
│   │   └── utils.go
│   ├── beacon/
│   │   ├── beacon_router_configuration/
│   │   │   └── cfg.go
│   │   ├── beaconevents/
│   │   │   ├── emitter_test.go
│   │   │   ├── event_notifier.go
│   │   │   ├── model.go
│   │   │   ├── operation_feed.go
│   │   │   └── state_feed.go
│   │   ├── beaconhttp/
│   │   │   ├── api.go
│   │   │   ├── args.go
│   │   │   ├── beacon_response.go
│   │   │   └── types.go
│   │   ├── beacontest/
│   │   │   ├── errors.go
│   │   │   ├── harness.go
│   │   │   ├── harness_test.go
│   │   │   ├── harness_test_data.yml
│   │   │   └── linux_basepathfs.go
│   │   ├── builder/
│   │   │   ├── client.go
│   │   │   ├── client_test.go
│   │   │   ├── interface.go
│   │   │   ├── mock_services/
│   │   │   │   └── builder_client_mock.go
│   │   │   ├── test_data/
│   │   │   │   ├── mock_blinded_block.json
│   │   │   │   ├── mock_blinded_block_resp.json
│   │   │   │   └── mock_header.json
│   │   │   └── types.go
│   │   ├── building/
│   │   │   ├── endpoints.go
│   │   │   └── state.go
│   │   ├── handler/
│   │   │   ├── attestation_rewards.go
│   │   │   ├── blobs.go
│   │   │   ├── block_production.go
│   │   │   ├── blocks.go
│   │   │   ├── builder.go
│   │   │   ├── committees.go
│   │   │   ├── config.go
│   │   │   ├── data_test.go
│   │   │   ├── duties_attester.go
│   │   │   ├── duties_proposer.go
│   │   │   ├── duties_sync.go
│   │   │   ├── events.go
│   │   │   ├── forkchoice.go
│   │   │   ├── format.go
│   │   │   ├── genesis.go
│   │   │   ├── handler.go
│   │   │   ├── harness/
│   │   │   │   ├── attestation_rewards_bellatrix.yml
│   │   │   │   ├── attestation_rewards_phase0.yml
│   │   │   │   ├── blob_sidecars.yaml
│   │   │   │   ├── blocks.yml
│   │   │   │   ├── committees.yml
│   │   │   │   ├── committees_f.yml
│   │   │   │   ├── config.yml
│   │   │   │   ├── duties_attester.yml
│   │   │   │   ├── duties_attester_f.yml
│   │   │   │   ├── duties_proposer.yml
│   │   │   │   ├── duties_sync_bellatrix.yml
│   │   │   │   ├── expected_withdrawals.yml
│   │   │   │   ├── fork_choice.yml
│   │   │   │   ├── headers.yml
│   │   │   │   ├── lightclient.yml
│   │   │   │   ├── lighthouse.yml
│   │   │   │   ├── liveness.yml
│   │   │   │   └── validators.yml
│   │   │   ├── harness_test.go
│   │   │   ├── headers.go
│   │   │   ├── lightclient.go
│   │   │   ├── lighthouse.go
│   │   │   ├── liveness.go
│   │   │   ├── node.go
│   │   │   ├── pool.go
│   │   │   ├── pool_test.go
│   │   │   ├── rewards.go
│   │   │   ├── rewards_test.go
│   │   │   ├── states.go
│   │   │   ├── states_test.go
│   │   │   ├── subscription.go
│   │   │   ├── test_data/
│   │   │   │   ├── attestations_1.json
│   │   │   │   ├── attestations_2.json
│   │   │   │   ├── attestations_3.json
│   │   │   │   ├── attestations_4.json
│   │   │   │   ├── blinded_block_1.json
│   │   │   │   ├── blob_sidecars_1.json
│   │   │   │   ├── block_1.json
│   │   │   │   ├── committees_1.yaml
│   │   │   │   ├── duties_1.yaml
│   │   │   │   ├── duties_sync_1.yaml
│   │   │   │   ├── expected_withdrawals_avg.json
│   │   │   │   ├── expected_withdrawals_head.json
│   │   │   │   ├── forkchoice_1.yaml
│   │   │   │   ├── harness_inclusion_global_1.json
│   │   │   │   ├── harness_inclusion_local_1.json
│   │   │   │   ├── head_validators_all.json
│   │   │   │   ├── head_validators_balances.json
│   │   │   │   ├── light_client_bootstrap_1.json
│   │   │   │   ├── light_client_finality_1.json
│   │   │   │   ├── light_client_optimistic_1.json
│   │   │   │   ├── light_client_update_1.json
│   │   │   │   ├── rewards_1.yaml
│   │   │   │   ├── rewards_2.json
│   │   │   │   ├── states_1.yaml
│   │   │   │   ├── sync_committees_1.json
│   │   │   │   ├── validator_1.json
│   │   │   │   ├── validators_1.yaml
│   │   │   │   └── validators_some.json
│   │   │   ├── utils_test.go
│   │   │   ├── validator_registration.go
│   │   │   ├── validator_registration_test.go
│   │   │   ├── validator_test.go
│   │   │   └── validators.go
│   │   ├── router.go
│   │   ├── rw.go
│   │   └── synced_data/
│   │       ├── interface.go
│   │       ├── mock_services/
│   │       │   └── synced_data_mock.go
│   │       └── synced_data.go
│   ├── clparams/
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── global.go
│   │   ├── initial_state/
│   │   │   ├── chiado.state.ssz
│   │   │   ├── gnosis.state.ssz
│   │   │   ├── initial_state.go
│   │   │   ├── initial_state_test.go
│   │   │   ├── mainnet.state.ssz
│   │   │   └── sepolia.state.ssz
│   │   └── version.go
│   ├── clstages/
│   │   └── clstages.go
│   ├── cltypes/
│   │   ├── aggregate.go
│   │   ├── beacon_block.go
│   │   ├── beacon_block_blinded.go
│   │   ├── beacon_block_interface.go
│   │   ├── beacon_block_test.go
│   │   ├── beacon_committee_subscriptions.go
│   │   ├── beacon_header.go
│   │   ├── beacon_kzgcommitment.go
│   │   ├── beacon_kzgcommitment_test.go
│   │   ├── blob_sidecar.go
│   │   ├── block_production.go
│   │   ├── bls_to_execution_change.go
│   │   ├── bls_to_execution_test.go
│   │   ├── builder.go
│   │   ├── clone.go
│   │   ├── column_sidecar.go
│   │   ├── contribution.go
│   │   ├── eth1_block.go
│   │   ├── eth1_data.go
│   │   ├── eth1_data_test.go
│   │   ├── eth1_header.go
│   │   ├── eth1_header_test.go
│   │   ├── execution_requests.go
│   │   ├── fork.go
│   │   ├── fork_test.go
│   │   ├── historical_summary.go
│   │   ├── historical_summary_test.go
│   │   ├── indexed_attestation.go
│   │   ├── justification_bits.go
│   │   ├── justification_bits_test.go
│   │   ├── light_client.go
│   │   ├── lightclient_utils/
│   │   │   └── lightclient.go
│   │   ├── network.go
│   │   ├── network_test.go
│   │   ├── participation_flags.go
│   │   ├── participation_flags_test.go
│   │   ├── slashings.go
│   │   ├── slashings_test.go
│   │   ├── solid/
│   │   │   ├── README.md
│   │   │   ├── attestation.go
│   │   │   ├── attestation_data.go
│   │   │   ├── bitlist.go
│   │   │   ├── bitlist_test.go
│   │   │   ├── bitvector.go
│   │   │   ├── bitvector_test.go
│   │   │   ├── checkpoint.go
│   │   │   ├── consolidation.go
│   │   │   ├── deposits.go
│   │   │   ├── extra_data.go
│   │   │   ├── extra_data_test.go
│   │   │   ├── hash_list.go
│   │   │   ├── hash_vector.go
│   │   │   ├── hashutil.go
│   │   │   ├── hashutil_test.go
│   │   │   ├── interfaces.go
│   │   │   ├── list_ssz.go
│   │   │   ├── list_ssz_test.go
│   │   │   ├── list_test.go
│   │   │   ├── participation_bitlist.go
│   │   │   ├── participation_bitlist_test.go
│   │   │   ├── pending_attestation.go
│   │   │   ├── pending_attestation_test.go
│   │   │   ├── ranger.go
│   │   │   ├── sync_committee.go
│   │   │   ├── sync_committee_test.go
│   │   │   ├── transactions.go
│   │   │   ├── uint64_list.go
│   │   │   ├── uint64_raw_list.go
│   │   │   ├── uint64_vector.go
│   │   │   ├── uint64slice_byte.go
│   │   │   ├── uint64slice_byte_test.go
│   │   │   ├── validator.go
│   │   │   ├── validator_set.go
│   │   │   ├── validator_test.go
│   │   │   └── withdrawal.go
│   │   ├── sync_aggregator_selection_data.go
│   │   ├── testdata/
│   │   │   ├── block_test_gnosis_deneb.json
│   │   │   └── block_test_gnosis_deneb.ssz
│   │   ├── validator.go
│   │   ├── validator_test.go
│   │   └── withdrawal.go
│   ├── coverage
│   ├── das/
│   │   ├── mock_services/
│   │   │   └── peer_das_mock.go
│   │   ├── p2p_utils.go
│   │   ├── peer_das.go
│   │   ├── state/
│   │   │   ├── interface.go
│   │   │   ├── mock_services/
│   │   │   │   └── peer_das_state_reader_mock.go
│   │   │   └── state.go
│   │   └── utils/
│   │       ├── block_produce_utils.go
│   │       └── das_utils.go
│   ├── fork/
│   │   ├── fork.go
│   │   └── fork_test.go
│   ├── gossip/
│   │   └── gossip.go
│   ├── kzg/
│   │   ├── kzg_init.go
│   │   └── trusted_setup_4096.json
│   ├── merkle_tree/
│   │   ├── hasher.go
│   │   ├── init.go
│   │   ├── list.go
│   │   ├── merkle_root.go
│   │   ├── merkle_root_test.go
│   │   ├── merkle_tree.go
│   │   ├── merkle_tree_test.go
│   │   ├── primitives.go
│   │   ├── testdata/
│   │   │   └── serialized.ssz_snappy
│   │   ├── utils.go
│   │   └── zero.go
│   ├── monitor/
│   │   ├── metrics.go
│   │   └── shuffling_metrics/
│   │       └── shuffling_metrics.go
│   ├── persistence/
│   │   ├── base_encoding/
│   │   │   ├── primitives.go
│   │   │   ├── primitives_test.go
│   │   │   ├── rabbit.go
│   │   │   ├── rabbit_test.go
│   │   │   ├── ssz_queue.go
│   │   │   ├── ssz_queue_test.go
│   │   │   └── uint64_diff.go
│   │   ├── beacon_indicies/
│   │   │   ├── indicies.go
│   │   │   └── indicies_test.go
│   │   ├── blob_storage/
│   │   │   ├── blob_db.go
│   │   │   ├── blob_db_test.go
│   │   │   ├── data_column_db.go
│   │   │   ├── data_column_db_test.go
│   │   │   └── mock_services/
│   │   │       ├── blob_storage_mock.go
│   │   │       └── data_column_storage_mock.go
│   │   ├── format/
│   │   │   └── snapshot_format/
│   │   │       ├── blocks.go
│   │   │       ├── blocks_test.go
│   │   │       ├── getters/
│   │   │       │   └── execution_snapshot.go
│   │   │       ├── test_data/
│   │   │       │   ├── altair.ssz_snappy
│   │   │       │   ├── bellatrix.ssz_snappy
│   │   │       │   ├── capella.ssz_snappy
│   │   │       │   ├── deneb.ssz_snappy
│   │   │       │   └── phase0.ssz_snappy
│   │   │       └── test_util.go
│   │   ├── genesisdb/
│   │   │   ├── genesis_db.go
│   │   │   └── interface.go
│   │   ├── state/
│   │   │   ├── epoch_data.go
│   │   │   ├── epoch_data_test.go
│   │   │   ├── historical_states_reader/
│   │   │   │   ├── attesting_indicies.go
│   │   │   │   ├── historical_states_reader.go
│   │   │   │   └── historical_states_reader_test.go
│   │   │   ├── slot_data.go
│   │   │   ├── slot_data_test.go
│   │   │   ├── state_accessors.go
│   │   │   ├── static_validator_table.go
│   │   │   ├── static_validator_table_test.go
│   │   │   ├── validator_events.go
│   │   │   └── validator_events_test.go
│   │   └── test_data/
│   │       └── test_block.ssz_snappy
│   ├── phase1/
│   │   ├── core/
│   │   │   ├── caches/
│   │   │   │   └── shuffled_indicies_cache.go
│   │   │   ├── checkpoint_sync/
│   │   │   │   ├── checkpoint_sync_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── local_checkpoint_syncer.go
│   │   │   │   ├── remote_checkpoint_sync.go
│   │   │   │   └── util.go
│   │   │   └── state/
│   │   │       ├── accessors.go
│   │   │       ├── cache.go
│   │   │       ├── cache_accessors.go
│   │   │       ├── cache_getters.go
│   │   │       ├── cache_mutators.go
│   │   │       ├── cache_setters.go
│   │   │       ├── copy.go
│   │   │       ├── lru/
│   │   │       │   └── lru.go
│   │   │       ├── mutators.go
│   │   │       ├── mutators_test.go
│   │   │       ├── raw/
│   │   │       │   ├── copy.go
│   │   │       │   ├── errors.go
│   │   │       │   ├── events.go
│   │   │       │   ├── getters.go
│   │   │       │   ├── hashing.go
│   │   │       │   ├── misc_test.go
│   │   │       │   ├── params.go
│   │   │       │   ├── setters.go
│   │   │       │   ├── setters_test.go
│   │   │       │   ├── ssz.go
│   │   │       │   ├── state.go
│   │   │       │   ├── test_util.go
│   │   │       │   └── testdata/
│   │   │       │       └── state.ssz_snappy
│   │   │       ├── root_test.go
│   │   │       ├── shuffling/
│   │   │       │   ├── shuffling.go
│   │   │       │   ├── shuffling_test.go
│   │   │       │   └── util.go
│   │   │       ├── ssz.go
│   │   │       ├── ssz_test.go
│   │   │       ├── tests/
│   │   │       │   ├── capella.ssz_snappy
│   │   │       │   └── phase0.ssz_snappy
│   │   │       ├── upgrade.go
│   │   │       ├── upgrade_test.go
│   │   │       ├── util.go
│   │   │       └── utils_test.go
│   │   ├── execution_client/
│   │   │   ├── block_collector/
│   │   │   │   ├── block_collector.go
│   │   │   │   └── block_collector_test.go
│   │   │   ├── execution_client_direct.go
│   │   │   ├── execution_client_rpc.go
│   │   │   ├── execution_engine_mock.go
│   │   │   ├── interface.go
│   │   │   ├── rpc_helper/
│   │   │   │   └── methods.go
│   │   │   └── types.go
│   │   ├── forkchoice/
│   │   │   ├── blob_sidecars.go
│   │   │   ├── checkpoint_state.go
│   │   │   ├── fork_choice_test.go
│   │   │   ├── fork_graph/
│   │   │   │   ├── fork_graph_disk.go
│   │   │   │   ├── fork_graph_disk_fs.go
│   │   │   │   ├── fork_graph_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── participation_indicies_store.go
│   │   │   │   └── test_data/
│   │   │   │       ├── anchor_state.ssz_snappy
│   │   │   │       ├── block_0xbf1a9ba2d349f6b5a5095bff40bd103ae39177e36018fb1f589953b9eeb0ca9d.ssz_snappy
│   │   │   │       └── block_0xe2a37a22d208ebe969c50e9d44bb3f1f63c5404787b9c214a5f2f28fb9835feb.ssz_snappy
│   │   │   ├── forkchoice.go
│   │   │   ├── get_head.go
│   │   │   ├── interface.go
│   │   │   ├── latest_messages_store.go
│   │   │   ├── mock_services/
│   │   │   │   └── forkchoice_mock.go
│   │   │   ├── on_attestation.go
│   │   │   ├── on_attester_slashing.go
│   │   │   ├── on_block.go
│   │   │   ├── on_tick.go
│   │   │   ├── optimistic/
│   │   │   │   ├── optimistic.go
│   │   │   │   ├── optimistic_impl.go
│   │   │   │   └── optimistic_test.go
│   │   │   ├── public_keys_registry/
│   │   │   │   ├── db_public_keys_registry.go
│   │   │   │   ├── in_memory_public_keys_registry.go
│   │   │   │   └── interface.go
│   │   │   ├── test_data/
│   │   │   │   ├── anchor_state.ssz_snappy
│   │   │   │   ├── attestation_0xfb924d35b2888d9cd70e6879c1609e6cad7ea3b028a501967747d96e49068cb6.ssz_snappy
│   │   │   │   ├── block_0x3af8b5b42ca135c75b32abb32b3d71badb73695d3dc638bacfb6c8b7bcbee1a9.ssz_snappy
│   │   │   │   ├── block_0xc2788d6005ee2b92c3df2eff0aeab0374d155fa8ca1f874df305fa376ce334cf.ssz_snappy
│   │   │   │   └── block_0xd4503d46e43df56de4e19acb0f93b3b52087e422aace49a7c3816cf59bafb0ad.ssz_snappy
│   │   │   └── utils.go
│   │   ├── network/
│   │   │   ├── backward_beacon_downloader.go
│   │   │   ├── beacon_downloader.go
│   │   │   ├── blobs.go
│   │   │   ├── gossip_manager.go
│   │   │   ├── services/
│   │   │   │   ├── aggregate_and_proof_service.go
│   │   │   │   ├── aggregate_and_proof_service_test.go
│   │   │   │   ├── attestation_service.go
│   │   │   │   ├── attestation_service_test.go
│   │   │   │   ├── batch_signature_verification.go
│   │   │   │   ├── blob_sidecar_service.go
│   │   │   │   ├── blob_sidecar_service_test.go
│   │   │   │   ├── block_service.go
│   │   │   │   ├── block_service_test.go
│   │   │   │   ├── bls_to_execution_change_service.go
│   │   │   │   ├── bls_to_execution_change_service_test.go
│   │   │   │   ├── constants.go
│   │   │   │   ├── data_column_sidecar_service.go
│   │   │   │   ├── data_column_sidecar_service_test.go
│   │   │   │   ├── global_mock_test.go
│   │   │   │   ├── interface.go
│   │   │   │   ├── mock_services/
│   │   │   │   │   ├── aggregate_and_proof_service_mock.go
│   │   │   │   │   ├── attestation_service_mock.go
│   │   │   │   │   ├── blob_sidecars_service_mock.go
│   │   │   │   │   ├── block_service_mock.go
│   │   │   │   │   ├── bls_to_execution_change_service_mock.go
│   │   │   │   │   ├── data_column_sidecar_service_mock.go
│   │   │   │   │   ├── proposer_slashing_service_mock.go
│   │   │   │   │   ├── sync_committee_messages_service_mock.go
│   │   │   │   │   ├── sync_contribution_service_mock.go
│   │   │   │   │   └── voluntary_exit_service_mock.go
│   │   │   │   ├── proposer_slashing_service.go
│   │   │   │   ├── proposer_slashing_service_test.go
│   │   │   │   ├── sync_committee_messages_service.go
│   │   │   │   ├── sync_committee_messages_service_test.go
│   │   │   │   ├── sync_contribution_service.go
│   │   │   │   ├── sync_contribution_service_test.go
│   │   │   │   ├── test_data/
│   │   │   │   │   ├── blob_sidecar_service_blob.ssz_snappy
│   │   │   │   │   ├── blob_sidecar_service_block.ssz_snappy
│   │   │   │   │   └── blob_sidecar_service_state.ssz_snappy
│   │   │   │   ├── voluntary_exit_service.go
│   │   │   │   └── voluntary_exit_service_test.go
│   │   │   ├── subnets/
│   │   │   │   └── subnets.go
│   │   │   └── tb_rate_limiter.go
│   │   └── stages/
│   │       ├── chain_tip_sync.go
│   │       ├── cleanup_and_pruning.go
│   │       ├── clstages.go
│   │       ├── forkchoice.go
│   │       ├── forward_sync.go
│   │       └── stage_history_download.go
│   ├── pool/
│   │   ├── operation_pool.go
│   │   ├── operations_pool.go
│   │   └── operations_pool_test.go
│   ├── readme.md
│   ├── rpc/
│   │   ├── interface.go
│   │   ├── peer_selection.go
│   │   └── rpc.go
│   ├── sentinel/
│   │   ├── communication/
│   │   │   ├── ssz_snappy/
│   │   │   │   └── encoding.go
│   │   │   └── topics.go
│   │   ├── config.go
│   │   ├── config_test.go
│   │   ├── discovery.go
│   │   ├── gater.go
│   │   ├── gossip.go
│   │   ├── handlers/
│   │   │   ├── blobs.go
│   │   │   ├── blobs_test.go
│   │   │   ├── blocks.go
│   │   │   ├── blocks_by_range_test.go
│   │   │   ├── blocks_by_root_test.go
│   │   │   ├── data_cloumn_sidecar.go
│   │   │   ├── handlers.go
│   │   │   ├── heartbeats.go
│   │   │   ├── heartbeats_test.go
│   │   │   ├── light_client.go
│   │   │   ├── light_client_test.go
│   │   │   ├── test_helpers.go
│   │   │   └── utils_test.go
│   │   ├── handshake/
│   │   │   └── handshake.go
│   │   ├── httpreqresp/
│   │   │   └── server.go
│   │   ├── libp2p_settings.go
│   │   ├── msg_id.go
│   │   ├── msg_id_test.go
│   │   ├── peers/
│   │   │   └── peers_pool.go
│   │   ├── sentinel.go
│   │   ├── sentinel_gossip_test.go
│   │   ├── sentinel_requests_test.go
│   │   ├── service/
│   │   │   ├── notifiers.go
│   │   │   ├── service.go
│   │   │   └── start.go
│   │   ├── utils.go
│   │   └── utils_test.go
│   ├── spectest/
│   │   ├── .gitignore
│   │   ├── Makefile
│   │   ├── README.md
│   │   ├── consensus_tests/
│   │   │   ├── appendix.go
│   │   │   ├── bls.go
│   │   │   ├── eip4844_proofs.go
│   │   │   ├── epoch_processing.go
│   │   │   ├── finality.go
│   │   │   ├── fork_choice.go
│   │   │   ├── forks.go
│   │   │   ├── light_client.go
│   │   │   ├── networking.go
│   │   │   ├── operations.go
│   │   │   ├── rewards.go
│   │   │   ├── sanity.go
│   │   │   ├── shuffling.go
│   │   │   ├── ssz_static.go
│   │   │   └── transition.go
│   │   ├── scripts/
│   │   │   └── gen_ssz_static.sh
│   │   ├── tests_test.go
│   │   └── wmake.ps1
│   ├── ssz/
│   │   ├── decode.go
│   │   ├── encode.go
│   │   ├── ssz_test.go
│   │   └── testdata/
│   │       └── serialized.ssz_snappy
│   ├── transition/
│   │   ├── compat.go
│   │   ├── impl/
│   │   │   ├── eth2/
│   │   │   │   ├── block_processing_test.go
│   │   │   │   ├── impl.go
│   │   │   │   ├── operations.go
│   │   │   │   ├── statechange/
│   │   │   │   │   ├── finalization_and_justification.go
│   │   │   │   │   ├── process_effective_balance_update.go
│   │   │   │   │   ├── process_epoch.go
│   │   │   │   │   ├── process_epoch_test.go
│   │   │   │   │   ├── process_historical_roots.go
│   │   │   │   │   ├── process_historical_roots_update.go
│   │   │   │   │   ├── process_inactivity_scores.go
│   │   │   │   │   ├── process_pending_consolidations.go
│   │   │   │   │   ├── process_pending_deposits.go
│   │   │   │   │   ├── process_proposer_lookahead.go
│   │   │   │   │   ├── process_registry_updates.go
│   │   │   │   │   ├── process_rewards_and_penalties.go
│   │   │   │   │   ├── process_slashings.go
│   │   │   │   │   ├── process_sync_committee_update.go
│   │   │   │   │   ├── process_sync_committee_update_test.go
│   │   │   │   │   ├── resets.go
│   │   │   │   │   ├── test_data/
│   │   │   │   │   │   ├── block_processing/
│   │   │   │   │   │   │   ├── capella_block.ssz_snappy
│   │   │   │   │   │   │   └── capella_state.ssz_snappy
│   │   │   │   │   │   └── epoch_processing/
│   │   │   │   │   │       ├── effective_balances_expected.ssz_snappy
│   │   │   │   │   │       ├── effective_balances_test_state.ssz_snappy
│   │   │   │   │   │       ├── eth1_data_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── eth1_data_reset_state_test.ssz_snappy
│   │   │   │   │   │       ├── historical_roots_expected_test.ssz_snappy
│   │   │   │   │   │       ├── historical_roots_state_test.ssz_snappy
│   │   │   │   │   │       ├── inactivity_scores_expected_test.ssz_snappy
│   │   │   │   │   │       ├── inactivity_scores_state_test.ssz_snappy
│   │   │   │   │   │       ├── justification_and_finality_expected_test.ssz_snappy
│   │   │   │   │   │       ├── justification_and_finality_state_test.ssz_snappy
│   │   │   │   │   │       ├── participation_flag_updates_expected_test.ssz_snappy
│   │   │   │   │   │       ├── participation_flag_updates_state_test.ssz_snappy
│   │   │   │   │   │       ├── randao_mixes_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── randao_mixes_reset_state_test.ssz_snappy
│   │   │   │   │   │       ├── registry_updates_test_expected.ssz_snappy
│   │   │   │   │   │       ├── registry_updates_test_state.ssz_snappy
│   │   │   │   │   │       ├── rewards_penalty_test_expected.ssz_snappy
│   │   │   │   │   │       ├── rewards_penalty_test_state.ssz_snappy
│   │   │   │   │   │       ├── slashings_expected_test.ssz_snappy
│   │   │   │   │   │       ├── slashings_reset_expected_test.ssz_snappy
│   │   │   │   │   │       ├── slashings_reset_state_test.ssz_snappy
│   │   │   │   │   │       └── slashings_state_test.ssz_snappy
│   │   │   │   │   └── utils.go
│   │   │   │   ├── utils.go
│   │   │   │   └── validation.go
│   │   │   └── funcmap/
│   │   │       └── impl.go
│   │   └── machine/
│   │       ├── block.go
│   │       ├── helpers.go
│   │       ├── machine.go
│   │       └── transition.go
│   ├── utils/
│   │   ├── blob.go
│   │   ├── bytes.go
│   │   ├── bytes_test.go
│   │   ├── crypto.go
│   │   ├── crypto_test.go
│   │   ├── eth2shuffle/
│   │   │   ├── shuffle.go
│   │   │   ├── shuffle_bench_test.go
│   │   │   ├── shuffle_test.go
│   │   │   └── spec/
│   │   │       └── tests.csv
│   │   ├── eth_clock/
│   │   │   ├── ethereum_clock.go
│   │   │   ├── ethereum_clock_mock.go
│   │   │   └── ethereum_clock_test.go
│   │   ├── math.go
│   │   ├── math_test.go
│   │   ├── merkle.go
│   │   ├── set.go
│   │   ├── threading/
│   │   │   └── parallel_executor.go
│   │   └── time_test.go
│   └── validator/
│       ├── attestation_producer/
│       │   ├── attestation_producer.go
│       │   ├── attestation_producer_test.go
│       │   └── interface.go
│       ├── committee_subscription/
│       │   ├── committee_subscription.go
│       │   ├── interface.go
│       │   └── mock_services/
│       │       └── committee_subscribe_mock.go
│       ├── sync_contribution_pool/
│       │   ├── interface.go
│       │   ├── mock_services/
│       │   │   └── sync_contribution_pool_mock.go
│       │   ├── sync_contribution_pool.go
│       │   └── sync_contribution_pool_test.go
│       └── validator_params/
│           └── validator_params.go
├── cmd/
│   ├── abigen/
│   │   └── main.go
│   ├── bootnode/
│   │   └── main.go
│   ├── bumper/
│   │   ├── README.md
│   │   ├── cmd/
│   │   │   ├── bump.go
│   │   │   ├── inspect.go
│   │   │   ├── rename.go
│   │   │   ├── root.go
│   │   │   └── selector.go
│   │   ├── internal/
│   │   │   ├── schema/
│   │   │   │   └── schema.go
│   │   │   └── tui/
│   │   │       └── tui.go
│   │   └── main.go
│   ├── capcli/
│   │   ├── .gitignore
│   │   ├── cli.go
│   │   └── main.go
│   ├── caplin/
│   │   ├── caplin1/
│   │   │   ├── option.go
│   │   │   └── run.go
│   │   ├── caplincli/
│   │   │   └── config.go
│   │   ├── caplinflags/
│   │   │   └── flags.go
│   │   └── main.go
│   ├── commitment-prefix/
│   │   ├── main.go
│   │   └── readme.md
│   ├── diag/
│   │   ├── db/
│   │   │   └── db.go
│   │   ├── downloader/
│   │   │   └── diag_downloader.go
│   │   ├── flags/
│   │   │   └── flags.go
│   │   ├── main.go
│   │   ├── readme.md
│   │   ├── stages/
│   │   │   └── stages.go
│   │   ├── sysinfo/
│   │   │   └── sysinfo.go
│   │   ├── ui/
│   │   │   └── ui.go
│   │   └── util/
│   │       └── util.go
│   ├── downloader/
│   │   ├── downloadernat/
│   │   │   └── nat.go
│   │   ├── main.go
│   │   ├── readme.md
│   │   ├── recompress.sh
│   │   └── torrent_hashes_update.sh
│   ├── erigon/
│   │   └── main.go
│   ├── erigoncustom/
│   │   ├── README.md
│   │   └── main.go
│   ├── evm/
│   │   ├── README.md
│   │   ├── compiler.go
│   │   ├── disasm.go
│   │   ├── internal/
│   │   │   ├── compiler/
│   │   │   │   └── compiler.go
│   │   │   └── t8ntool/
│   │   │       ├── execution.go
│   │   │       ├── flags.go
│   │   │       ├── gen_stenv.go
│   │   │       └── transition.go
│   │   ├── main.go
│   │   ├── runner.go
│   │   ├── staterunner.go
│   │   ├── t8n_test.go
│   │   ├── testdata/
│   │   │   ├── 1/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   └── txs.json
│   │   │   ├── 10/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 11/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 12/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 19/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp_arrowglacier.json
│   │   │   │   ├── exp_london.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 2/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 26/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   └── txs.json
│   │   │   ├── 3/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 4/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 5/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 7/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 8/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── 9/
│   │   │   │   ├── alloc.json
│   │   │   │   ├── env.json
│   │   │   │   ├── exp.json
│   │   │   │   ├── readme.md
│   │   │   │   └── txs.json
│   │   │   ├── evmrun/
│   │   │   │   ├── 1.out.1.txt
│   │   │   │   ├── 1.out.2.txt
│   │   │   │   ├── 2.out.1.txt
│   │   │   │   ├── 2.out.2.txt
│   │   │   │   ├── 3.out.1.txt
│   │   │   │   ├── 3.out.2.txt
│   │   │   │   ├── 4.out.1.txt
│   │   │   │   └── 4.out.2.txt
│   │   │   └── statetest.json
│   │   └── transition-test.sh
│   ├── hack/
│   │   ├── db/
│   │   │   └── lmdb.go
│   │   ├── flow/
│   │   │   └── flow.go
│   │   ├── hack.go
│   │   ├── scripts/
│   │   │   └── geth_log_parse.py
│   │   └── tool/
│   │       ├── fromdb/
│   │       │   └── tool.go
│   │       └── tool.go
│   ├── integration/
│   │   ├── Readme.md
│   │   ├── commands/
│   │   │   ├── flags.go
│   │   │   ├── idx_optimize.go
│   │   │   ├── idx_optimize2.go
│   │   │   ├── idx_verify.go
│   │   │   ├── refetence_db.go
│   │   │   ├── reset_state.go
│   │   │   ├── root.go
│   │   │   ├── stages.go
│   │   │   ├── state_domains.go
│   │   │   └── state_stages.go
│   │   └── main.go
│   ├── pics/
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   └── Token.abi
│   │   │   ├── gen.go
│   │   │   ├── gen_token.go
│   │   │   └── token.sol
│   │   ├── pics.go
│   │   ├── state.go
│   │   └── visual/
│   │       ├── common.go
│   │       ├── hexary.go
│   │       └── quad.go
│   ├── prometheus/
│   │   ├── .gitignore
│   │   ├── Readme.md
│   │   ├── dashboards/
│   │   │   ├── dashboard.yml
│   │   │   ├── erigon.json
│   │   │   └── erigon_internals.json
│   │   ├── datasources/
│   │   │   └── prometheus.yml
│   │   ├── grafana.ini
│   │   └── prometheus.yml
│   ├── rlpdump/
│   │   ├── main.go
│   │   └── rlpdump_test.go
│   ├── rlpgen/
│   │   ├── handlers.go
│   │   ├── main.go
│   │   ├── matcher.go
│   │   └── testing/
│   │       ├── encdec_test.go
│   │       ├── gen_testingstruct_rlp.go
│   │       └── testing_struct.go
│   ├── rpcdaemon/
│   │   ├── .gitignore
│   │   ├── README.md
│   │   ├── cli/
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── httpcfg/
│   │   │   │   └── http_cfg.go
│   │   │   └── rpc_allow_list.go
│   │   ├── graphql/
│   │   │   ├── eip-1767.graphqls.ref
│   │   │   ├── geth-schema.graphqls.ref
│   │   │   ├── gqlgen.yml
│   │   │   ├── graph/
│   │   │   │   ├── generated.go
│   │   │   │   ├── helpers.go
│   │   │   │   ├── model/
│   │   │   │   │   ├── models_gen.go
│   │   │   │   │   └── test.go
│   │   │   │   ├── resolver.go
│   │   │   │   ├── schema.graphqls
│   │   │   │   └── schema.resolvers.go
│   │   │   ├── graphql.go
│   │   │   ├── graphql_test.go
│   │   │   ├── query_block.graphql
│   │   │   └── query_chainID.graphql
│   │   ├── health/
│   │   │   ├── check_block.go
│   │   │   ├── check_peers.go
│   │   │   ├── check_synced.go
│   │   │   ├── check_time.go
│   │   │   ├── health.go
│   │   │   ├── health_test.go
│   │   │   ├── interfaces.go
│   │   │   └── parse_api.go
│   │   ├── main.go
│   │   ├── postman/
│   │   │   ├── Overlay_Testing.json
│   │   │   ├── README.md
│   │   │   ├── RPC_Testing.json
│   │   │   └── Trace_Testing.json
│   │   ├── rpcdaemontest/
│   │   │   └── test_util.go
│   │   ├── rpcservices/
│   │   │   ├── eth_backend.go
│   │   │   ├── eth_mining.go
│   │   │   └── eth_txpool.go
│   │   ├── test.http
│   │   └── testdata/
│   │       ├── .gitignore
│   │       ├── sed_file
│   │       └── trace_tests
│   ├── rpctest/
│   │   ├── .gitignore
│   │   ├── Readme.md
│   │   ├── getBlockByNumber.json
│   │   ├── getLogs.json
│   │   ├── heavyStorageRangeAt.json
│   │   ├── lessHeavyStorageRangeAt.json
│   │   ├── main.go
│   │   └── rpctest/
│   │       ├── account_range_verify.go
│   │       ├── bench1.go
│   │       ├── bench2.go
│   │       ├── bench3.go
│   │       ├── bench4.go
│   │       ├── bench5.go
│   │       ├── bench6.go
│   │       ├── bench7.go
│   │       ├── bench9.go
│   │       ├── bench_blockbynumber.go
│   │       ├── bench_debugTrace.go
│   │       ├── bench_ethcall.go
│   │       ├── bench_ethcreateaccesslist.go
│   │       ├── bench_ethgetBalance.go
│   │       ├── bench_ethgetblockbyhash.go
│   │       ├── bench_ethgetblockbynumber.go
│   │       ├── bench_ethgetlogs.go
│   │       ├── bench_gettransactionbyhash.go
│   │       ├── bench_otsgetblockTransactions.go
│   │       ├── bench_overlaygetlogs.go
│   │       ├── bench_traceblock.go
│   │       ├── bench_tracecall.go
│   │       ├── bench_tracecallmany.go
│   │       ├── bench_tracefilter.go
│   │       ├── bench_tracereplaytransaction.go
│   │       ├── bench_tracetransaction.go
│   │       ├── bench_txreceipts.go
│   │       ├── replay.go
│   │       ├── request_generator.go
│   │       ├── request_generator_test.go
│   │       ├── type.go
│   │       └── utils.go
│   ├── scripts/
│   │   └── mirror-datadir.sh
│   ├── sentinel/
│   │   ├── main.go
│   │   ├── sentinelcli/
│   │   │   ├── cliSettings.go
│   │   │   └── flags/
│   │   │       ├── defaultFlags.go
│   │   │       └── flags.go
│   │   └── sentinelflags/
│   │       └── flags.go
│   ├── sentry/
│   │   ├── README.md
│   │   └── main.go
│   ├── silkworm_api/
│   │   └── snapshot_idx.go
│   ├── state/
│   │   ├── commands/
│   │   │   ├── cat_snapshot.go
│   │   │   ├── global_flags_vars.go
│   │   │   ├── opcode_tracer.go
│   │   │   ├── root.go
│   │   │   └── verify_txlookup.go
│   │   ├── main.go
│   │   └── verify/
│   │       └── verify_txlookup.go
│   ├── txpool/
│   │   ├── main.go
│   │   └── readme.md
│   └── utils/
│       ├── cmd.go
│       ├── flags/
│       │   ├── flags.go
│       │   ├── flags_test.go
│       │   └── helpers.go
│       ├── flags.go
│       └── flags_test.go
├── core/
│   ├── .gitignore
│   ├── asm/
│   │   ├── asm.go
│   │   ├── asm_test.go
│   │   ├── compiler.go
│   │   ├── compiler_test.go
│   │   ├── lex_test.go
│   │   └── lexer.go
│   ├── blob_storage/
│   │   ├── blob_db.go
│   │   └── snappy.go
│   ├── block_builder_parameters.go
│   ├── block_validator.go
│   ├── block_validator_test.go
│   ├── blockchain.go
│   ├── blocks.go
│   ├── chain_makers.go
│   ├── data_availability.go
│   ├── debugprint/
│   │   └── receipts.go
│   ├── devnet.go
│   ├── error.go
│   ├── events.go
│   ├── evm.go
│   ├── gaspool.go
│   ├── gdbme/
│   │   ├── gdbme_darwin.go
│   │   ├── gdbme_linux.go
│   │   └── gdbme_windows.go
│   ├── genesiswrite/
│   │   ├── genesis_performance_test.go
│   │   ├── genesis_test.go
│   │   ├── genesis_test.json
│   │   └── genesis_write.go
│   ├── mkalloc.go
│   ├── rlp_test.go
│   ├── skip_analysis.go
│   ├── state/
│   │   ├── access_list.go
│   │   ├── access_list_test.go
│   │   ├── cached_reader.go
│   │   ├── cached_reader3.go
│   │   ├── cached_writer.go
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   ├── Changer.abi
│   │   │   │   ├── Phoenix.abi
│   │   │   │   ├── Poly.abi
│   │   │   │   ├── Revive.abi
│   │   │   │   ├── Revive2.abi
│   │   │   │   └── Selfdestruct.abi
│   │   │   ├── changer.sol
│   │   │   ├── gen.go
│   │   │   ├── gen_changer.go
│   │   │   ├── gen_phoenix.go
│   │   │   ├── gen_poly.go
│   │   │   ├── gen_revive.go
│   │   │   ├── gen_revive2.go
│   │   │   ├── gen_selfdestruct.go
│   │   │   ├── poly.sol
│   │   │   ├── revive.sol
│   │   │   ├── revive2.sol
│   │   │   └── selfdestruct.sol
│   │   ├── database.go
│   │   ├── database_test.go
│   │   ├── dump.go
│   │   ├── history_reader_v3.go
│   │   ├── intra_block_state.go
│   │   ├── intra_block_state_logger_test.go
│   │   ├── intra_block_state_test.go
│   │   ├── journal.go
│   │   ├── recon_state.go
│   │   ├── rw_v3.go
│   │   ├── state_fix.go
│   │   ├── state_object.go
│   │   ├── state_object_test.go
│   │   ├── state_test.go
│   │   ├── state_types.go
│   │   ├── stateless.go
│   │   ├── transient_storage.go
│   │   ├── triedb_state.go
│   │   ├── txtask.go
│   │   ├── versionedio.go
│   │   ├── versionmap.go
│   │   └── versionmap_test.go
│   ├── state_processor.go
│   ├── state_transition.go
│   ├── stateless/
│   │   ├── encoding.go
│   │   ├── witness.go
│   │   └── witness_test.go
│   ├── systemcontracts/
│   │   ├── const.go
│   │   └── upgrade.go
│   ├── test/
│   │   ├── domains_restart_test.go
│   │   ├── marked_forkable_test.go
│   │   └── unmarked_forkable_test.go
│   ├── tracing/
│   │   ├── gen_balance_change_reason_stringer.go
│   │   ├── gen_gas_change_reason_stringer.go
│   │   └── hooks.go
│   └── vm/
│       ├── absint_cfg.go
│       ├── absint_cfg_proof_check.go
│       ├── absint_cfg_proof_gen.go
│       ├── analysis.go
│       ├── analysis_test.go
│       ├── common.go
│       ├── contract.go
│       ├── contracts.go
│       ├── contracts_lightclient.go
│       ├── contracts_lightclient_test.go
│       ├── contracts_test.go
│       ├── doc.go
│       ├── eips.go
│       ├── errors.go
│       ├── evm.go
│       ├── evm_test.go
│       ├── evmtypes/
│       │   ├── evmtypes.go
│       │   └── rules.go
│       ├── export_test.go
│       ├── gas.go
│       ├── gas_table.go
│       ├── gas_table_test.go
│       ├── instructions.go
│       ├── instructions_test.go
│       ├── interface.go
│       ├── interpreter.go
│       ├── jump_table.go
│       ├── lightclient/
│       │   ├── iavl/
│       │   │   ├── .gitignore
│       │   │   ├── CHANGELOG.md
│       │   │   ├── CONTRIBUTING.md
│       │   │   ├── LICENSE
│       │   │   ├── Makefile
│       │   │   ├── PERFORMANCE.md
│       │   │   ├── POEM
│       │   │   ├── README.md
│       │   │   ├── doc.go
│       │   │   ├── key_format.go
│       │   │   ├── key_format_test.go
│       │   │   ├── proof.go
│       │   │   ├── proof_iavl_absence.go
│       │   │   ├── proof_iavl_value.go
│       │   │   ├── proof_path.go
│       │   │   ├── proof_range.go
│       │   │   ├── version.go
│       │   │   └── wire.go
│       │   ├── v1/
│       │   │   ├── ics23_proof.go
│       │   │   ├── multistoreproof.go
│       │   │   ├── rootmultistore.go
│       │   │   ├── types.go
│       │   │   ├── utils.go
│       │   │   └── wire.go
│       │   └── v2/
│       │       ├── lightclient.go
│       │       └── lightclient_test.go
│       ├── memory.go
│       ├── memory_table.go
│       ├── memory_test.go
│       ├── mock_vm.go
│       ├── opcodes.go
│       ├── opcodes_test.go
│       ├── operations_acl.go
│       ├── program/
│       │   ├── program.go
│       │   ├── program_test.go
│       │   └── readme.md
│       ├── runtime/
│       │   ├── doc.go
│       │   ├── env.go
│       │   ├── runtime.go
│       │   ├── runtime_example_test.go
│       │   └── runtime_test.go
│       ├── stack.go
│       ├── stack_table.go
│       └── testdata/
│           ├── precompiles/
│           │   ├── blake2F.json
│           │   ├── blsG1Add-eip.json
│           │   ├── blsG1Add.json
│           │   ├── blsG1Mul-eip.json
│           │   ├── blsG1MultiExp-eip.json
│           │   ├── blsG1MultiExp.json
│           │   ├── blsG2Add-eip.json
│           │   ├── blsG2Add.json
│           │   ├── blsG2Mul-eip.json
│           │   ├── blsG2MultiExp-eip.json
│           │   ├── blsG2MultiExp.json
│           │   ├── blsMapG1-eip.json
│           │   ├── blsMapG1.json
│           │   ├── blsMapG2-eip.json
│           │   ├── blsMapG2.json
│           │   ├── blsPairing-eip.json
│           │   ├── blsPairing.json
│           │   ├── bn254Add.json
│           │   ├── bn254Pairing.json
│           │   ├── bn254ScalarMul.json
│           │   ├── ecRecover.json
│           │   ├── fail-blake2f.json
│           │   ├── fail-blsG1Add-eip.json
│           │   ├── fail-blsG1Add.json
│           │   ├── fail-blsG1Mul-eip.json
│           │   ├── fail-blsG1MultiExp-eip.json
│           │   ├── fail-blsG1MultiExp.json
│           │   ├── fail-blsG2Add-eip.json
│           │   ├── fail-blsG2Add.json
│           │   ├── fail-blsG2Mul-eip.json
│           │   ├── fail-blsG2MultiExp-eip.json
│           │   ├── fail-blsG2MultiExp.json
│           │   ├── fail-blsMapG1-eip.json
│           │   ├── fail-blsMapG1.json
│           │   ├── fail-blsMapG2-eip.json
│           │   ├── fail-blsMapG2.json
│           │   ├── fail-blsPairing-eip.json
│           │   ├── fail-blsPairing.json
│           │   ├── fail-bn254ScalarMul.json
│           │   ├── fail-modexp-eip7823.json
│           │   ├── modexp.json
│           │   ├── modexp_eip2565.json
│           │   ├── modexp_eip7883.json
│           │   ├── p256Verify-EIP-7951.json
│           │   ├── p256Verify.json
│           │   └── pointEvaluation.json
│           ├── testcases_add.json
│           ├── testcases_and.json
│           ├── testcases_byte.json
│           ├── testcases_div.json
│           ├── testcases_eq.json
│           ├── testcases_exp.json
│           ├── testcases_gt.json
│           ├── testcases_lt.json
│           ├── testcases_mod.json
│           ├── testcases_mul.json
│           ├── testcases_or.json
│           ├── testcases_sar.json
│           ├── testcases_sdiv.json
│           ├── testcases_sgt.json
│           ├── testcases_shl.json
│           ├── testcases_shr.json
│           ├── testcases_signext.json
│           ├── testcases_slt.json
│           ├── testcases_smod.json
│           ├── testcases_sub.json
│           └── testcases_xor.json
├── dashboards/
│   ├── erigonQA/
│   │   └── erigonQA.internal.json
│   └── erigon_custom_metrics/
│       └── erigon_custom_metrics.internal.json
├── db/
│   ├── .gitignore
│   ├── compress/
│   │   └── compress.go
│   ├── config3/
│   │   └── config3.go
│   ├── datadir/
│   │   └── dirs.go
│   ├── datastruct/
│   │   ├── existence/
│   │   │   └── existence_filter.go
│   │   └── fusefilter/
│   │       ├── fusefilter_reader.go
│   │       ├── fusefilter_writer.go
│   │       └── fusefilter_writer_test.go
│   ├── downloader/
│   │   ├── README.md
│   │   ├── downloader.go
│   │   ├── downloader_grpc_server.go
│   │   ├── downloader_test.go
│   │   ├── downloadercfg/
│   │   │   ├── dns_cache_resolver.go
│   │   │   ├── downloadercfg.go
│   │   │   ├── iter.go
│   │   │   ├── logger.go
│   │   │   ├── logger_libutp.go
│   │   │   ├── slog-multihandler.go
│   │   │   ├── slogger.go
│   │   │   └── slogger_test.go
│   │   ├── downloadergrpc/
│   │   │   └── client.go
│   │   ├── env.go
│   │   ├── mdbx_piece_completion.go
│   │   ├── mdbx_piece_completion_test.go
│   │   ├── rclone.go
│   │   ├── rclone_test.go
│   │   ├── torrent_files.go
│   │   ├── util.go
│   │   └── webseed.go
│   ├── etl/
│   │   ├── README.md
│   │   ├── buffers.go
│   │   ├── collector.go
│   │   ├── dataprovider.go
│   │   ├── etl.go
│   │   ├── etl_test.go
│   │   ├── heap.go
│   │   └── progress.go
│   ├── kv/
│   │   ├── Readme.md
│   │   ├── backup/
│   │   │   └── backup.go
│   │   ├── bitmapdb/
│   │   │   ├── bitmapdb.go
│   │   │   ├── bitmapdb_test.go
│   │   │   ├── fixed_size_bitmaps.go
│   │   │   ├── fixed_size_bitmaps_test.go
│   │   │   └── stream.go
│   │   ├── dbcfg/
│   │   │   └── db_constants.go
│   │   ├── dbutils/
│   │   │   ├── composite_keys.go
│   │   │   └── helper.go
│   │   ├── files.go
│   │   ├── forkable_interface.go
│   │   ├── helpers.go
│   │   ├── kv_interface.go
│   │   ├── kvcache/
│   │   │   ├── cache.go
│   │   │   ├── cache_test.go
│   │   │   └── dummy.go
│   │   ├── kvcfg/
│   │   │   └── accessors_config.go
│   │   ├── mdbx/
│   │   │   ├── kv_abstract_test.go
│   │   │   ├── kv_mdbx.go
│   │   │   ├── kv_mdbx_batch.go
│   │   │   ├── kv_mdbx_temporary.go
│   │   │   ├── kv_mdbx_test.go
│   │   │   ├── kv_migrator_test.go
│   │   │   └── util.go
│   │   ├── membatchwithdb/
│   │   │   ├── memory_mutation.go
│   │   │   ├── memory_mutation_cursor.go
│   │   │   ├── memory_mutation_diff.go
│   │   │   └── memory_mutation_test.go
│   │   ├── memdb/
│   │   │   └── memory_database.go
│   │   ├── order/
│   │   │   └── order.go
│   │   ├── prune/
│   │   │   ├── storage_mode.go
│   │   │   └── storage_mode_test.go
│   │   ├── rawdbv3/
│   │   │   ├── txnum.go
│   │   │   └── txnum_test.go
│   │   ├── remotedb/
│   │   │   └── kv_remote.go
│   │   ├── remotedbserver/
│   │   │   ├── remotedbserver.go
│   │   │   ├── remotedbserver_test.go
│   │   │   └── snapshots_mock.go
│   │   ├── stream/
│   │   │   ├── stream.go
│   │   │   ├── stream_helpers.go
│   │   │   ├── stream_impl.go
│   │   │   ├── stream_interface.go
│   │   │   └── stream_test.go
│   │   ├── table_sizes.go
│   │   ├── tables.go
│   │   ├── temporal/
│   │   │   ├── historyv2/
│   │   │   │   ├── account_changeset.go
│   │   │   │   ├── changeset.go
│   │   │   │   ├── readme.md
│   │   │   │   └── storage_changeset.go
│   │   │   ├── kv_forkables.go
│   │   │   ├── kv_temporal.go
│   │   │   ├── kv_temporal_test.go
│   │   │   └── temporaltest/
│   │   │       └── kv_temporal_testdb.go
│   │   ├── types.go
│   │   └── visible_file.go
│   ├── migrations/
│   │   ├── db_schema_version.go
│   │   ├── migrations.go
│   │   ├── migrations_test.go
│   │   └── reset_stage_txn_lookup.go
│   ├── rawdb/
│   │   ├── accessors_chain.go
│   │   ├── accessors_indexes.go
│   │   ├── accessors_metadata.go
│   │   ├── app_version.go
│   │   ├── blockio/
│   │   │   └── block_writer.go
│   │   ├── rawdbhelpers/
│   │   │   └── rawdbhelpers.go
│   │   ├── rawtemporaldb/
│   │   │   ├── accessors_commitment.go
│   │   │   ├── accessors_receipt.go
│   │   │   └── accessors_receipt_test.go
│   │   ├── state_version.go
│   │   └── utils/
│   │       ├── block_max_heap.go
│   │       └── block_max_heap_test.go
│   ├── recsplit/
│   │   ├── .gitignore
│   │   ├── eliasfano16/
│   │   │   ├── elias_fano.go
│   │   │   ├── elias_fano_fuzz_test.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzDoubleEliasFano/
│   │   │           │   ├── 17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648
│   │   │           │   ├── 1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae
│   │   │           │   ├── 1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9
│   │   │           │   ├── 5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760
│   │   │           │   ├── a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101
│   │   │           │   └── b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e
│   │   │           └── FuzzSingleEliasFano/
│   │   │               ├── 4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73
│   │   │               └── fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7
│   │   ├── eliasfano32/
│   │   │   ├── elias_fano.go
│   │   │   ├── elias_fano_fuzz_test.go
│   │   │   ├── elias_fano_test.go
│   │   │   ├── rebased_elias_fano.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzDoubleEliasFano/
│   │   │           │   ├── 17e481a7c1425c40f663d83515ab93ee97d7108181870a3747d4aeca7fbb2648
│   │   │           │   ├── 1a646c505776a883b2d99ecc5e83f54a70b9cbac79cdad92901d202e481461ae
│   │   │           │   ├── 1af797790141e786f451a1d4d47f37452233883d41160cfbadc06e2bfcf17ae9
│   │   │           │   ├── 5199aaf4a8e7ccb61efaa0a3fc90ecd4d142bce89a912fb84536632b1277a760
│   │   │           │   ├── a07f63d0e074619c4fe923533ea5c72af1c00e2aff3206f345b9767ee9ce4101
│   │   │           │   └── b7ae575f1e43328af34baad9490d5639f50d6afda42ef20438d6a1d4a0e5a88e
│   │   │           └── FuzzSingleEliasFano/
│   │   │               ├── 4ed490ae7dc318c0525e1e514cec72681ec2e72ffb9e5571d1c31ee26cb94a73
│   │   │               └── fb292a3777de8fcb809bf1d7bf13bffc3c2b7d8b1df25511af87e0872cebe3c7
│   │   ├── golomb_rice.go
│   │   ├── index.go
│   │   ├── index_reader.go
│   │   ├── index_test.go
│   │   ├── multiencseq/
│   │   │   ├── sequence_builder.go
│   │   │   ├── sequence_builder_test.go
│   │   │   ├── sequence_reader.go
│   │   │   └── sequence_reader_test.go
│   │   ├── recsplit.go
│   │   ├── recsplit_fuzz_test.go
│   │   ├── recsplit_test.go
│   │   ├── simpleseq/
│   │   │   ├── simple_sequence.go
│   │   │   └── simple_sequence_test.go
│   │   └── testdata/
│   │       └── fuzz/
│   │           └── FuzzRecSplit/
│   │               ├── 0bb14f20865563b5504c292a005834e5e04d6094622a40844dffedb78e560eab
│   │               ├── 13f42b07eca1d28428c3ea36e8ec409764afc9351e3f09e4d91b80626067ea59
│   │               ├── 363f36b97269af400b867a8b03e9eff1eeedb2ceb2dfe516a4cef4a74b309b5e
│   │               ├── 38b6ae40b3e89854b01ee0627bdb24c634f32809c12ddca378e1d61c617d9649
│   │               ├── 61bad6c11050935c60bf7f0d15e40fbb20ec1a70dab26f62bf92a49706920440
│   │               ├── 87f7c74ee952d2ef8af8df250b939c4a65677eff54de2393c8f2b896e250813f
│   │               ├── 8dcbe8c6685bcbfb81a3a3e5e8eb005af3edb0f0bf2f653f0430942379c90e7c
│   │               ├── 93906988de1687555e538207931e6022243d7a38d6b2926e04c866dbb8318d54
│   │               ├── a62376aebd0437e22ed6eace28704d5225ae77b615952d99e85accd632d416d2
│   │               └── dc722115a839e9b801755d0efbe86e6d9c9199e2ec36d0a4ee4f67f31aab1519
│   ├── seg/
│   │   ├── compress.go
│   │   ├── compress_fuzz_test.go
│   │   ├── compress_test.go
│   │   ├── decompress.go
│   │   ├── decompress_bench_test.go
│   │   ├── decompress_fuzz_test.go
│   │   ├── decompress_test.go
│   │   ├── parallel_compress.go
│   │   ├── patricia/
│   │   │   ├── patricia.go
│   │   │   ├── patricia_fuzz_test.go
│   │   │   ├── patricia_test.go
│   │   │   └── testdata/
│   │   │       └── fuzz/
│   │   │           ├── FuzzLongestMatch/
│   │   │           │   ├── 3a5198b65396851670329467bf211856973858cf006ef30532d6871ea859a12a
│   │   │           │   ├── 50e6d6e88241b5d113eeb578e3f53211f9d4c2605391a92b5314b1522ddd6613
│   │   │           │   ├── a6e7cfd5b704609ef4eae0891c8bd6f60cfbe3da1bf98f71ce0c3e107042154e
│   │   │           │   └── eae7318dcf13903566ac6ce58a3188dd26cc3216cdb8a4c398871feb71d79749
│   │   │           └── FuzzPatricia/
│   │   │               ├── 1ac0f70817537550272339767003fa71f827da8ab9b1466b539a97b48b0bec89
│   │   │               ├── 77fc7eba78cd0b1fa2a157aa2cc7e164eed8ca2c71f13d4e103e5a76887a341b
│   │   │               └── 82c51172146d16d565cd6de38398aba6284e6acc17a97edccb0be3a97624f967
│   │   ├── sais/
│   │   │   ├── README.md
│   │   │   ├── sais.c
│   │   │   ├── sais.go
│   │   │   ├── sais.h
│   │   │   ├── sais_test.go
│   │   │   ├── utils.c
│   │   │   └── utils.h
│   │   ├── seg_auto_rw.go
│   │   ├── seg_interface.go
│   │   ├── seg_paged_rw.go
│   │   ├── seg_paged_rw_test.go
│   │   └── silkworm_seg_fuzz_test.go
│   ├── snapcfg/
│   │   ├── util.go
│   │   └── util_test.go
│   ├── snapshotsync/
│   │   ├── caplin_state_snapshots.go
│   │   ├── freezeblocks/
│   │   │   ├── beacon_block_reader.go
│   │   │   ├── block_cache_test.go
│   │   │   ├── block_reader.go
│   │   │   ├── block_snapshots.go
│   │   │   ├── block_sqeeze.go
│   │   │   ├── block_txnum_cache.go
│   │   │   ├── bor_snapshots.go
│   │   │   ├── bsc_snapshots.go
│   │   │   ├── caplin_snapshots.go
│   │   │   └── dump_test.go
│   │   ├── merger.go
│   │   ├── snapshots.go
│   │   ├── snapshots_test.go
│   │   ├── snapshotsync.go
│   │   └── snapshotsync_test.go
│   ├── snaptype/
│   │   ├── caplin_types.go
│   │   ├── caplin_types_test.go
│   │   ├── files.go
│   │   ├── files_test.go
│   │   ├── snaptypes.go
│   │   └── type.go
│   ├── snaptype2/
│   │   ├── block_types.go
│   │   ├── block_types_test.go
│   │   ├── bsc_types.go
│   │   └── headers_freezer.go
│   ├── state/
│   │   ├── aggregator.go
│   │   ├── aggregator2.go
│   │   ├── aggregator_bench_test.go
│   │   ├── aggregator_debug.go
│   │   ├── aggregator_ext_test.go
│   │   ├── aggregator_files.go
│   │   ├── aggregator_fuzz_test.go
│   │   ├── aggregator_test.go
│   │   ├── archive_test.go
│   │   ├── bps_tree.go
│   │   ├── bpstree_bench_test.go
│   │   ├── btree_index.go
│   │   ├── btree_index_test.go
│   │   ├── cache.go
│   │   ├── changeset/
│   │   │   ├── state_changeset.go
│   │   │   └── state_changeset_test.go
│   │   ├── dirty_files.go
│   │   ├── dirty_files_test.go
│   │   ├── domain.go
│   │   ├── domain_committed.go
│   │   ├── domain_shared.go
│   │   ├── domain_shared_bench_test.go
│   │   ├── domain_shared_test.go
│   │   ├── domain_stream.go
│   │   ├── domain_test.go
│   │   ├── emptydir.go
│   │   ├── entity_integrity_check.go
│   │   ├── forkable.go
│   │   ├── forkable_agg.go
│   │   ├── forkable_agg_test.go
│   │   ├── forkable_interfaces.go
│   │   ├── forkable_merge.go
│   │   ├── gc_test.go
│   │   ├── history.go
│   │   ├── history_stream.go
│   │   ├── history_test.go
│   │   ├── integrity.go
│   │   ├── integrity_checker_test.go
│   │   ├── inverted_index.go
│   │   ├── inverted_index_stream.go
│   │   ├── inverted_index_test.go
│   │   ├── merge.go
│   │   ├── merge_test.go
│   │   ├── metrics.go
│   │   ├── proto_forkable.go
│   │   ├── reconst.go
│   │   ├── registry.go
│   │   ├── relations.go
│   │   ├── root_relation.go
│   │   ├── simple_freezer.go
│   │   ├── simple_index_builder.go
│   │   ├── snap_config.go
│   │   ├── snap_repo.go
│   │   ├── snap_repo_config_test.go
│   │   ├── snap_repo_test.go
│   │   ├── snap_schema.go
│   │   ├── snap_schema_test.go
│   │   ├── squeeze.go
│   │   ├── squeeze_test.go
│   │   ├── state_recon.go
│   │   ├── state_util.go
│   │   ├── statecfg/
│   │   │   ├── accessors.go
│   │   │   ├── gen_version.go
│   │   │   ├── gen_version_test.go
│   │   │   ├── state_schema.go
│   │   │   ├── statecfg.go
│   │   │   ├── version_schema.go
│   │   │   ├── version_schema_gen.go
│   │   │   └── versions.yaml
│   │   ├── stats/
│   │   │   └── agg_log_stats.go
│   │   ├── temporal_mem_batch.go
│   │   ├── types.go
│   │   └── utils.go
│   ├── version/
│   │   ├── app.go
│   │   ├── file_version.go
│   │   └── file_version_test.go
│   └── wrap/
│       └── e3_wrapper.go
├── debug.Dockerfile
├── diagnostics/
│   ├── CHANGELOG.md
│   ├── block_body_download_stats.go
│   ├── bodies_info.go
│   ├── bootnodes.go
│   ├── cmd_line.go
│   ├── db.go
│   ├── diaglib/
│   │   ├── block_execution.go
│   │   ├── bodies.go
│   │   ├── client.go
│   │   ├── entities.go
│   │   ├── headers.go
│   │   ├── network.go
│   │   ├── network_test.go
│   │   ├── notifier.go
│   │   ├── provider.go
│   │   ├── provider_test.go
│   │   ├── resources_usage.go
│   │   ├── snapshots.go
│   │   ├── snapshots_download.go
│   │   ├── snapshots_indexing.go
│   │   ├── snapshots_test.go
│   │   ├── speedtest.go
│   │   ├── stages.go
│   │   ├── stages_test.go
│   │   ├── sys_info.go
│   │   ├── txpool.go
│   │   ├── utils.go
│   │   └── utils_test.go
│   ├── diskutils/
│   │   ├── diskutils.go
│   │   ├── diskutils_darwin.go
│   │   ├── diskutils_linux.go
│   │   └── diskutils_windows.go
│   ├── flags.go
│   ├── header_downloader_stats.go
│   ├── headers.go
│   ├── logs.go
│   ├── mem/
│   │   ├── common.go
│   │   ├── mem.go
│   │   └── mem_linux.go
│   ├── mem.go
│   ├── nodeinfo.go
│   ├── peers.go
│   ├── profile.go
│   ├── setup.go
│   ├── snapshot_sync.go
│   ├── sysinfo.go
│   ├── sysutils/
│   │   ├── sysutils.go
│   │   └── sysutils_test.go
│   └── version.go
├── docker-compose.yml
├── docs/
│   ├── DEV_CHAIN.md
│   ├── TESTING.md
│   ├── design/
│   │   ├── logos/
│   │   │   └── Illustrator/
│   │   │       └── logo.ai
│   │   ├── readme.MD
│   │   ├── styleguide/
│   │   │   ├── colors.sketch
│   │   │   └── readme.md
│   │   └── wallpapers/
│   │       └── wallpapers.sketch
│   ├── evm_semantics.md
│   ├── examples/
│   │   └── single-process.md
│   ├── merry-go-round-sync.md
│   ├── mining.md
│   ├── pos_downloader.drawio
│   ├── programmers_guide/
│   │   ├── .gitignore
│   │   ├── db_faq.md
│   │   ├── db_walkthrough.MD
│   │   ├── dupsort.md
│   │   ├── guide.md
│   │   ├── witness_formal_spec.md
│   │   └── witness_format.md
│   └── readthedocs/
│       ├── Makefile
│       ├── make.bat
│       └── source/
│           ├── conf.py
│           ├── etl.rst
│           ├── index.rst
│           ├── installation.rst
│           ├── rpc/
│           │   ├── index.rst
│           │   └── tutorial.rst
│           ├── snappy.rst
│           ├── stagedsync.rst
│           └── types.rst
├── erigon-lib/
│   ├── .gitignore
│   ├── .golangci.yml
│   ├── Makefile
│   ├── bls/
│   │   ├── README.md
│   │   ├── bls_test.go
│   │   ├── cache.go
│   │   ├── cache_test.go
│   │   ├── errors.go
│   │   ├── private_key.go
│   │   ├── public_key.go
│   │   └── signature.go
│   ├── common/
│   │   ├── address.go
│   │   ├── assert/
│   │   │   ├── assert_disable.go
│   │   │   └── assert_enable.go
│   │   ├── background/
│   │   │   └── progress.go
│   │   ├── big.go
│   │   ├── bitutil/
│   │   │   ├── bitutil.go
│   │   │   ├── bitutil_test.go
│   │   │   ├── compress.go
│   │   │   ├── compress_test.go
│   │   │   ├── select.go
│   │   │   └── select_test.go
│   │   ├── bytes.go
│   │   ├── bytes4.go
│   │   ├── bytes48.go
│   │   ├── bytes64.go
│   │   ├── bytes96.go
│   │   ├── bytes_test.go
│   │   ├── cbor/
│   │   │   ├── buf_pool.go
│   │   │   └── marshal.go
│   │   ├── chan.go
│   │   ├── cli.go
│   │   ├── cmp/
│   │   │   └── cmp.go
│   │   ├── collections.go
│   │   ├── concurrent/
│   │   │   └── concurrent.go
│   │   ├── copybytes.go
│   │   ├── dbg/
│   │   │   ├── dbg_assert.go
│   │   │   ├── dbg_ctx.go
│   │   │   ├── dbg_env.go
│   │   │   ├── experiments.go
│   │   │   ├── leak_detector.go
│   │   │   ├── log_panic.go
│   │   │   └── pprof_cgo.go
│   │   ├── debug.go
│   │   ├── denomination.go
│   │   ├── dir/
│   │   │   ├── rw_dir.go
│   │   │   ├── rw_dir_generic.go
│   │   │   ├── rw_dir_test.go
│   │   │   └── rw_dir_windows.go
│   │   ├── disk/
│   │   │   ├── common.go
│   │   │   ├── disk.go
│   │   │   ├── disk_darwin.go
│   │   │   └── disk_linux.go
│   │   ├── empty/
│   │   │   └── empty_hashes.go
│   │   ├── errors/
│   │   │   └── errors.go
│   │   ├── fdlimit/
│   │   │   ├── fdlimit_bsd.go
│   │   │   ├── fdlimit_darwin.go
│   │   │   ├── fdlimit_test.go
│   │   │   ├── fdlimit_unix.go
│   │   │   └── fdlimit_windows.go
│   │   ├── format.go
│   │   ├── generics/
│   │   │   └── generics.go
│   │   ├── hash.go
│   │   ├── hasher.go
│   │   ├── hextobytes.go
│   │   ├── hexutil/
│   │   │   ├── bytes.go
│   │   │   ├── errors.go
│   │   │   ├── hexutil.go
│   │   │   ├── hexutil_test.go
│   │   │   ├── json.go
│   │   │   ├── json_test.go
│   │   │   └── text.go
│   │   ├── length/
│   │   │   └── length.go
│   │   ├── math/
│   │   │   ├── big.go
│   │   │   ├── big_test.go
│   │   │   ├── integer.go
│   │   │   └── integer_test.go
│   │   ├── mclock/
│   │   │   ├── mclock.go
│   │   │   ├── mclock.s
│   │   │   ├── simclock.go
│   │   │   └── simclock_test.go
│   │   ├── metrics/
│   │   │   ├── block_metrics.go
│   │   │   └── metrics_enabled.go
│   │   ├── path.go
│   │   ├── pretty.go
│   │   ├── pretty_test.go
│   │   ├── race/
│   │   │   ├── race_disabled.go
│   │   │   └── race_enabled.go
│   │   ├── ring/
│   │   │   └── ring.go
│   │   ├── size.go
│   │   ├── size_test.go
│   │   ├── sleep.go
│   │   ├── sleep_test.go
│   │   ├── sorted.go
│   │   ├── sorted_test.go
│   │   ├── test_utils.go
│   │   ├── tuples.go
│   │   ├── tuples_test.go
│   │   ├── types.go
│   │   ├── types_test.go
│   │   └── u256/
│   │       └── big.go
│   ├── crypto/
│   │   ├── blake2b/
│   │   │   ├── blake2b.go
│   │   │   ├── blake2bAVX2_amd64.go
│   │   │   ├── blake2bAVX2_amd64.s
│   │   │   ├── blake2b_amd64.go
│   │   │   ├── blake2b_amd64.s
│   │   │   ├── blake2b_f_fuzz.go
│   │   │   ├── blake2b_f_test.go
│   │   │   ├── blake2b_generic.go
│   │   │   ├── blake2b_ref.go
│   │   │   ├── blake2b_test.go
│   │   │   ├── blake2x.go
│   │   │   └── register.go
│   │   ├── bn254/
│   │   │   ├── LICENSE
│   │   │   ├── bn254_fast.go
│   │   │   ├── bn254_slow.go
│   │   │   ├── cloudflare/
│   │   │   │   ├── LICENSE
│   │   │   │   ├── bn254.go
│   │   │   │   ├── bn254_test.go
│   │   │   │   ├── constants.go
│   │   │   │   ├── curve.go
│   │   │   │   ├── example_test.go
│   │   │   │   ├── gfp.go
│   │   │   │   ├── gfp12.go
│   │   │   │   ├── gfp2.go
│   │   │   │   ├── gfp6.go
│   │   │   │   ├── gfp_amd64.s
│   │   │   │   ├── gfp_arm64.s
│   │   │   │   ├── gfp_decl.go
│   │   │   │   ├── gfp_generic.go
│   │   │   │   ├── gfp_test.go
│   │   │   │   ├── lattice.go
│   │   │   │   ├── lattice_test.go
│   │   │   │   ├── main_test.go
│   │   │   │   ├── mul_amd64.h
│   │   │   │   ├── mul_arm64.h
│   │   │   │   ├── mul_bmi2_amd64.h
│   │   │   │   ├── optate.go
│   │   │   │   └── twist.go
│   │   │   ├── gnark_bn254.go
│   │   │   └── google/
│   │   │       ├── bn254.go
│   │   │       ├── bn254_test.go
│   │   │       ├── constants.go
│   │   │       ├── curve.go
│   │   │       ├── example_test.go
│   │   │       ├── gfp12.go
│   │   │       ├── gfp2.go
│   │   │       ├── gfp6.go
│   │   │       ├── main_test.go
│   │   │       ├── optate.go
│   │   │       └── twist.go
│   │   ├── crypto.go
│   │   ├── crypto_test.go
│   │   ├── ecies/
│   │   │   ├── .gitignore
│   │   │   ├── LICENSE
│   │   │   ├── README
│   │   │   ├── ecies.go
│   │   │   ├── ecies_test.go
│   │   │   └── params.go
│   │   ├── kzg/
│   │   │   ├── go_eth_kzg.go
│   │   │   └── kzg.go
│   │   ├── secp256r1/
│   │   │   ├── publickey.go
│   │   │   └── verifier.go
│   │   ├── signature_cgo.go
│   │   ├── signature_nocgo.go
│   │   └── signature_test.go
│   ├── estimate/
│   │   ├── esitmated_ram.go
│   │   ├── total_memory.go
│   │   ├── total_memory_cgroups.go
│   │   └── total_memory_cgroups_stub.go
│   ├── event/
│   │   ├── notifier.go
│   │   └── observers.go
│   ├── go.mod
│   ├── go.sum
│   ├── gointerfaces/
│   │   ├── downloaderproto/
│   │   │   ├── downloader.pb.go
│   │   │   ├── downloader_client_mock.go
│   │   │   ├── downloader_grpc.pb.go
│   │   │   └── mockgen.go
│   │   ├── executionproto/
│   │   │   ├── execution.pb.go
│   │   │   └── execution_grpc.pb.go
│   │   ├── grpcutil/
│   │   │   └── utils.go
│   │   ├── remoteproto/
│   │   │   ├── bor.pb.go
│   │   │   ├── bor_grpc.pb.go
│   │   │   ├── ethbackend.pb.go
│   │   │   ├── ethbackend_grpc.pb.go
│   │   │   ├── kv.pb.go
│   │   │   ├── kv_client_mock.go
│   │   │   ├── kv_grpc.pb.go
│   │   │   ├── kv_state_changes_client_mock.go
│   │   │   ├── mockgen.go
│   │   │   ├── sort.go
│   │   │   └── sort_test.go
│   │   ├── sentinelproto/
│   │   │   ├── sentinel.pb.go
│   │   │   └── sentinel_grpc.pb.go
│   │   ├── sentryproto/
│   │   │   ├── mockgen.go
│   │   │   ├── sentry.pb.go
│   │   │   ├── sentry_client_mock.go
│   │   │   ├── sentry_grpc.pb.go
│   │   │   └── sentry_server_mock.go
│   │   ├── txpoolproto/
│   │   │   ├── mining.pb.go
│   │   │   ├── mining_grpc.pb.go
│   │   │   ├── txpool.pb.go
│   │   │   └── txpool_grpc.pb.go
│   │   ├── type_utils.go
│   │   ├── typesproto/
│   │   │   └── types.pb.go
│   │   └── version.go
│   ├── jwt/
│   │   └── http_round_tripper.go
│   ├── log/
│   │   ├── LICENSE
│   │   ├── skip.go
│   │   └── v3/
│   │       ├── bench_test.go
│   │       ├── doc.go
│   │       ├── ext/
│   │       │   ├── ext_test.go
│   │       │   └── handler.go
│   │       ├── format.go
│   │       ├── handler.go
│   │       ├── log_test.go
│   │       ├── logger.go
│   │       ├── logger_test.go
│   │       ├── redact.go
│   │       ├── redact_test.go
│   │       ├── root.go
│   │       ├── syslog.go
│   │       └── term/
│   │           ├── LICENSE
│   │           ├── doc.go
│   │           ├── terminal_appengine.go
│   │           ├── terminal_darwin.go
│   │           ├── terminal_freebsd.go
│   │           ├── terminal_linux.go
│   │           ├── terminal_netbsd.go
│   │           ├── terminal_notwindows.go
│   │           ├── terminal_openbsd.go
│   │           ├── terminal_solaris.go
│   │           └── terminal_windows.go
│   ├── metrics/
│   │   ├── counter.go
│   │   ├── duration_observer.go
│   │   ├── ema.go
│   │   ├── gauge.go
│   │   ├── gaugevec.go
│   │   ├── histogram.go
│   │   ├── parsing.go
│   │   ├── register.go
│   │   ├── set.go
│   │   ├── setup.go
│   │   ├── summary.go
│   │   ├── timer.go
│   │   └── value_getter.go
│   ├── mmap/
│   │   ├── mmap_unix.go
│   │   └── mmap_windows.go
│   ├── rules.go
│   ├── synctest/
│   │   ├── synctest.go
│   │   ├── synctest_go_1_24.go
│   │   └── synctest_go_1_25_and_beyond.go
│   ├── testlog/
│   │   └── testlog.go
│   ├── tools/
│   │   ├── golangci_lint.sh
│   │   └── mod_tidy_check.sh
│   └── types/
│       ├── clonable/
│       │   └── clonable.go
│       └── ssz/
│           ├── errors.go
│           └── ssz.go
├── eth/
│   ├── api.go
│   ├── api_backend.go
│   ├── backend.go
│   ├── backend_test.go
│   ├── bloombits.go
│   ├── consensuschain/
│   │   └── consensus_chain_reader.go
│   ├── ethconfig/
│   │   ├── config.go
│   │   ├── features/
│   │   │   └── sync_features.go
│   │   └── gen_config.go
│   ├── ethconsensusconfig/
│   │   └── config.go
│   ├── ethutils/
│   │   ├── receipt.go
│   │   └── utils.go
│   ├── filters/
│   │   ├── api.go
│   │   ├── api_test.go
│   │   ├── filter_system_test.go
│   │   └── filter_test.go
│   ├── gasprice/
│   │   ├── feehistory.go
│   │   ├── feehistory_test.go
│   │   ├── gasprice.go
│   │   ├── gasprice_test.go
│   │   └── gaspricecfg/
│   │       └── gaspricecfg.go
│   ├── integrity/
│   │   ├── e3_ef_files.go
│   │   ├── e3_history_no_system_txs.go
│   │   ├── integrity_action_type.go
│   │   ├── no_gaps_in_canonical_headers.go
│   │   ├── rcache_no_duplicates.go
│   │   ├── receipts_no_duplicates.go
│   │   ├── receipts_no_duplicates_test.go
│   │   └── snap_blocks_read.go
│   ├── rawdbreset/
│   │   └── reset_stages.go
│   └── tracers/
│       ├── config/
│       │   └── api.go
│       ├── debug/
│       │   └── tracer.go
│       ├── internal/
│       │   └── tracetest/
│       │       ├── calltrace_test.go
│       │       ├── prestate_test.go
│       │       ├── testdata/
│       │       │   ├── call_tracer/
│       │       │   │   ├── call_tracer_config_default_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json
│       │       │   │   ├── call_tracer_config_disable_includePrecompiles_0x536434786ace02697118c44abf2835f188bf79902807c61a523ca3a6200bc350.json
│       │       │   │   ├── create.json
│       │       │   │   ├── deep_calls.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── inner_create_oog_outer_throw.json
│       │       │   │   ├── inner_instafail.json
│       │       │   │   ├── inner_revert_reason.json
│       │       │   │   ├── inner_throw_outer_revert.json
│       │       │   │   ├── inner_throw_outer_revert.md
│       │       │   │   ├── oog.json
│       │       │   │   ├── revert.json
│       │       │   │   ├── revert_reason.json
│       │       │   │   ├── selfdestruct.json
│       │       │   │   ├── simple.json
│       │       │   │   ├── simple_onlytop.json
│       │       │   │   └── throw.json
│       │       │   ├── call_tracer_legacy/
│       │       │   │   ├── create.json
│       │       │   │   ├── deep_calls.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── inner_create_oog_outer_throw.json
│       │       │   │   ├── inner_instafail.json
│       │       │   │   ├── inner_throw_outer_revert.json
│       │       │   │   ├── oog.json
│       │       │   │   ├── revert.json
│       │       │   │   ├── revert_reason.json
│       │       │   │   ├── selfdestruct.json
│       │       │   │   ├── simple.json
│       │       │   │   └── throw.json
│       │       │   ├── call_tracer_withLog/
│       │       │   │   ├── calldata.json
│       │       │   │   ├── delegatecall.json
│       │       │   │   ├── multi_contracts.json
│       │       │   │   ├── multilogs.json
│       │       │   │   ├── notopic.json
│       │       │   │   ├── simple.json
│       │       │   │   ├── tx_failed.json
│       │       │   │   ├── tx_partial_failed.json
│       │       │   │   └── with_onlyTopCall.json
│       │       │   ├── prestate_tracer/
│       │       │   │   ├── create_existing_contract.json
│       │       │   │   ├── create_with_value.json
│       │       │   │   ├── disable_code.json
│       │       │   │   ├── disable_code_and_storage.json
│       │       │   │   ├── disable_storage.json
│       │       │   │   └── simple.json
│       │       │   ├── prestate_tracer_legacy/
│       │       │   │   └── simple.json
│       │       │   └── prestate_tracer_with_diff_mode/
│       │       │       ├── create.json
│       │       │       ├── create_disable_code.json
│       │       │       ├── create_disable_storage.json
│       │       │       ├── create_failed.json
│       │       │       ├── create_suicide.json
│       │       │       ├── create_with_value.json
│       │       │       ├── inner_create.json
│       │       │       ├── inner_create_disable_code_and_storage.json
│       │       │       ├── simple.json
│       │       │       ├── simple_disable_code_and_storage.json
│       │       │       └── suicide.json
│       │       ├── testgenerator/
│       │       │   ├── .gitignore
│       │       │   ├── README.md
│       │       │   ├── package.json
│       │       │   ├── src/
│       │       │   │   └── index.ts
│       │       │   └── tsconfig.json
│       │       └── util.go
│       ├── js/
│       │   ├── bigint.go
│       │   ├── goja.go
│       │   ├── internal/
│       │   │   └── tracers/
│       │   │       ├── 4byte_tracer_legacy.js
│       │   │       ├── bigram_tracer.js
│       │   │       ├── call_tracer_legacy.js
│       │   │       ├── evmdis_tracer.js
│       │   │       ├── noop_tracer_legacy.js
│       │   │       ├── opcount_tracer.js
│       │   │       ├── prestate_tracer_legacy.js
│       │   │       ├── tracers.go
│       │   │       ├── trigram_tracer.js
│       │   │       └── unigram_tracer.js
│       │   └── tracer_test.go
│       ├── live/
│       │   ├── printer.go
│       │   └── tracer.go
│       ├── logger/
│       │   ├── access_list_tracer.go
│       │   ├── access_list_tracer_test.go
│       │   ├── gen_structlog.go
│       │   ├── json_stream.go
│       │   ├── logger.go
│       │   ├── logger2_test.go
│       │   ├── logger_json.go
│       │   └── logger_test.go
│       ├── native/
│       │   ├── 4byte.go
│       │   ├── call.go
│       │   ├── gen_account_json.go
│       │   ├── gen_callframe_json.go
│       │   ├── mux.go
│       │   ├── noop.go
│       │   ├── prestate.go
│       │   └── tracer.go
│       ├── tracer.go
│       ├── tracers.go
│       ├── tracers_test.go
│       └── util.go
├── ethstats/
│   └── ethstats.go
├── execution/
│   ├── aa/
│   │   ├── aa_exec.go
│   │   ├── aa_gas.go
│   │   ├── entry_point_tracer.go
│   │   └── validation_rules_tracer.go
│   ├── abi/
│   │   ├── abi.go
│   │   ├── abi_test.go
│   │   ├── argument.go
│   │   ├── bind/
│   │   │   ├── auth.go
│   │   │   ├── backend.go
│   │   │   ├── backends/
│   │   │   │   ├── simulated.go
│   │   │   │   └── simulated_test.go
│   │   │   ├── base.go
│   │   │   ├── base_test.go
│   │   │   ├── bind.go
│   │   │   ├── bind_test.go
│   │   │   ├── template.go
│   │   │   ├── util.go
│   │   │   └── util_test.go
│   │   ├── compiler/
│   │   │   ├── helpers.go
│   │   │   └── solidity.go
│   │   ├── error.go
│   │   ├── event.go
│   │   ├── event_test.go
│   │   ├── method.go
│   │   ├── method_test.go
│   │   ├── pack.go
│   │   ├── pack_test.go
│   │   ├── packing_test.go
│   │   ├── reflect.go
│   │   ├── reflect_test.go
│   │   ├── topics.go
│   │   ├── topics_test.go
│   │   ├── type.go
│   │   ├── type_test.go
│   │   ├── unpack.go
│   │   └── unpack_test.go
│   ├── builder/
│   │   ├── block_builder.go
│   │   ├── buildercfg/
│   │   │   └── mining.go
│   │   ├── latest_block_built.go
│   │   └── latest_block_built_test.go
│   ├── chain/
│   │   ├── aura_config.go
│   │   ├── chain_config.go
│   │   ├── chain_config_test.go
│   │   ├── chain_db.go
│   │   ├── consensus.go
│   │   ├── networkname/
│   │   │   └── network_name.go
│   │   ├── params/
│   │   │   └── protocol.go
│   │   └── spec/
│   │       ├── allocs/
│   │       │   ├── bsc.json
│   │       │   ├── chapel.json
│   │       │   ├── chiado.json
│   │       │   ├── dev.json
│   │       │   ├── gnosis.json
│   │       │   ├── holesky.json
│   │       │   ├── hoodi.json
│   │       │   ├── mainnet.json
│   │       │   └── sepolia.json
│   │       ├── bootnodes.go
│   │       ├── chainspecs/
│   │       │   ├── bsc.json
│   │       │   ├── chapel.json
│   │       │   ├── chiado.json
│   │       │   ├── gnosis.json
│   │       │   ├── holesky.json
│   │       │   ├── hoodi.json
│   │       │   ├── mainnet.json
│   │       │   ├── rialto.json
│   │       │   └── sepolia.json
│   │       ├── clique.go
│   │       ├── config.go
│   │       ├── config_test.go
│   │       ├── genesis.go
│   │       └── network_id.go
│   ├── commitment/
│   │   ├── bin_patricia_hashed.go
│   │   ├── bin_patricia_hashed_test.go
│   │   ├── commitment.go
│   │   ├── commitment_bench_test.go
│   │   ├── commitment_test.go
│   │   ├── commitmentdb/
│   │   │   ├── commitment_context.go
│   │   │   └── commitment_context_test.go
│   │   ├── hex_concurrent_patricia_hashed.go
│   │   ├── hex_patricia_hashed.go
│   │   ├── hex_patricia_hashed_bench_test.go
│   │   ├── hex_patricia_hashed_fuzz_test.go
│   │   ├── hex_patricia_hashed_test.go
│   │   ├── keys_nibbles.go
│   │   ├── metrics.go
│   │   └── patricia_state_mock_test.go
│   ├── consensus/
│   │   ├── aura/
│   │   │   ├── aura.go
│   │   │   ├── aura_test.go
│   │   │   ├── auraabi/
│   │   │   │   ├── abi.go
│   │   │   │   ├── gen_block_reward.go
│   │   │   │   └── gen_validator_set.go
│   │   │   ├── aurainterfaces/
│   │   │   │   └── interface.go
│   │   │   ├── config.go
│   │   │   ├── config_test.go
│   │   │   ├── contract_abi.go
│   │   │   ├── contracts/
│   │   │   │   ├── authority_round_random.json
│   │   │   │   ├── block_gas_limit.json
│   │   │   │   ├── block_reward.json
│   │   │   │   ├── certifier.json
│   │   │   │   ├── embed.go
│   │   │   │   ├── registrar.json
│   │   │   │   ├── test_authority_round_random.json
│   │   │   │   ├── test_authority_round_random.sol
│   │   │   │   ├── test_validator_set.json
│   │   │   │   ├── tx_acl.json
│   │   │   │   ├── tx_acl_deprecated.json
│   │   │   │   ├── tx_acl_gas_price.json
│   │   │   │   ├── validator_report.json
│   │   │   │   ├── validator_set.json
│   │   │   │   └── withdrawal.json
│   │   │   ├── empty_step.go
│   │   │   ├── epoch.go
│   │   │   ├── finality_test.go
│   │   │   ├── gaslimit_override.go
│   │   │   ├── rolling_finality.go
│   │   │   ├── types.go
│   │   │   ├── unassemble.go
│   │   │   └── validators.go
│   │   ├── chain_header_reader_mock.go
│   │   ├── chain_reader_mock.go
│   │   ├── clique/
│   │   │   ├── api.go
│   │   │   ├── clique.go
│   │   │   ├── clique_test.go
│   │   │   ├── keys.go
│   │   │   ├── snapshot.go
│   │   │   ├── snapshot_test.go
│   │   │   └── verifier.go
│   │   ├── consensus.go
│   │   ├── errors.go
│   │   ├── ethash/
│   │   │   ├── algorithm.go
│   │   │   ├── algorithm_test.go
│   │   │   ├── api.go
│   │   │   ├── consensus.go
│   │   │   ├── consensus_test.go
│   │   │   ├── difficulty.go
│   │   │   ├── ethash.go
│   │   │   ├── ethash_test.go
│   │   │   ├── ethashcfg/
│   │   │   │   └── ethashcfg.go
│   │   │   ├── fake.go
│   │   │   ├── meter.go
│   │   │   ├── sealer.go
│   │   │   └── sealer_test.go
│   │   ├── merge/
│   │   │   ├── merge.go
│   │   │   └── merge_test.go
│   │   ├── misc/
│   │   │   ├── dao.go
│   │   │   ├── dao_params.go
│   │   │   ├── eip1559.go
│   │   │   ├── eip1559_test.go
│   │   │   ├── eip2935.go
│   │   │   ├── eip4788.go
│   │   │   ├── eip4844.go
│   │   │   ├── eip4844_test.go
│   │   │   ├── eip6110.go
│   │   │   ├── eip7002.go
│   │   │   ├── eip7251.go
│   │   │   ├── gaslimit.go
│   │   │   └── pos.go
│   │   └── parlia/
│   │       ├── abi.go
│   │       ├── api.go
│   │       ├── bohrFork.go
│   │       ├── feynmanfork.go
│   │       ├── feynmanfork_test.go
│   │       ├── finality/
│   │       │   └── finalization.go
│   │       ├── lubanFork.go
│   │       ├── parlia.go
│   │       ├── snapshot.go
│   │       ├── snapshot_test.go
│   │       └── util.go
│   ├── dataflow/
│   │   └── states.go
│   ├── engineapi/
│   │   ├── engine_api_jsonrpc_client.go
│   │   ├── engine_api_methods.go
│   │   ├── engine_block_downloader/
│   │   │   ├── block_downloader.go
│   │   │   ├── body.go
│   │   │   ├── core.go
│   │   │   ├── download_request.go
│   │   │   └── header_reader.go
│   │   ├── engine_helpers/
│   │   │   ├── constants.go
│   │   │   └── fork_validator.go
│   │   ├── engine_logs_spammer/
│   │   │   └── engine_log_spammer.go
│   │   ├── engine_server.go
│   │   ├── engine_server_test.go
│   │   ├── engine_types/
│   │   │   ├── jsonrpc.go
│   │   │   └── status.go
│   │   └── interface.go
│   ├── eth1/
│   │   ├── block_building.go
│   │   ├── eth1_chain_reader/
│   │   │   └── chain_reader.go
│   │   ├── eth1_utils/
│   │   │   ├── grpc.go
│   │   │   └── grpc_test.go
│   │   ├── ethereum_execution.go
│   │   ├── forkchoice.go
│   │   ├── getters.go
│   │   ├── inserters.go
│   │   └── metrics.go
│   ├── exec3/
│   │   ├── blocks_read_ahead.go
│   │   ├── calltracer/
│   │   │   └── calltracer_v3.go
│   │   ├── historical_trace_worker.go
│   │   ├── state.go
│   │   └── trace_worker.go
│   ├── fixedgas/
│   │   ├── intrinsic_gas.go
│   │   └── intrinsic_gas_test.go
│   ├── p2p/
│   │   ├── bbd.go
│   │   ├── bbd_options.go
│   │   ├── bbd_result_feed.go
│   │   ├── fetcher.go
│   │   ├── fetcher_base.go
│   │   ├── fetcher_base_test.go
│   │   ├── fetcher_config.go
│   │   ├── fetcher_errors.go
│   │   ├── fetcher_penalizing.go
│   │   ├── fetcher_penalizing_test.go
│   │   ├── fetcher_tracking.go
│   │   ├── fetcher_tracking_test.go
│   │   ├── message_listener.go
│   │   ├── message_listener_test.go
│   │   ├── message_sender.go
│   │   ├── message_sender_test.go
│   │   ├── peer_event_registrar.go
│   │   ├── peer_event_registrar_mock.go
│   │   ├── peer_id.go
│   │   ├── peer_penalizer.go
│   │   ├── peer_shuffle.go
│   │   ├── peer_sync_progress.go
│   │   ├── peer_sync_progress_test.go
│   │   ├── peer_tracker.go
│   │   ├── peer_tracker_option.go
│   │   └── peer_tracker_test.go
│   ├── rlp/
│   │   ├── commitment.go
│   │   ├── commitment_test.go
│   │   ├── decode.go
│   │   ├── decode_tail_test.go
│   │   ├── decode_test.go
│   │   ├── doc.go
│   │   ├── encbuffer.go
│   │   ├── encode.go
│   │   ├── encode_rlp2.go
│   │   ├── encode_test.go
│   │   ├── encoder_example_test.go
│   │   ├── internal/
│   │   │   └── rlpstruct/
│   │   │       └── rlpstruct.go
│   │   ├── iterator.go
│   │   ├── iterator_test.go
│   │   ├── parse.go
│   │   ├── parse_test.go
│   │   ├── raw.go
│   │   ├── raw_test.go
│   │   └── typecache.go
│   ├── stagedsync/
│   │   ├── README.md
│   │   ├── chain_reader.go
│   │   ├── default_stages.go
│   │   ├── exec3.go
│   │   ├── exec3_parallel.go
│   │   ├── exec3_serial.go
│   │   ├── exec3_status.go
│   │   ├── metrics.go
│   │   ├── stage.go
│   │   ├── stage_blockhashes.go
│   │   ├── stage_bodies.go
│   │   ├── stage_bodies_test.go
│   │   ├── stage_commit_rebuild.go
│   │   ├── stage_custom_trace.go
│   │   ├── stage_custom_trace_test.go
│   │   ├── stage_execute.go
│   │   ├── stage_finish.go
│   │   ├── stage_headers.go
│   │   ├── stage_mining_create_block.go
│   │   ├── stage_mining_exec.go
│   │   ├── stage_mining_finish.go
│   │   ├── stage_postexec.go
│   │   ├── stage_senders.go
│   │   ├── stage_senders_test.go
│   │   ├── stage_snapshots.go
│   │   ├── stage_txlookup.go
│   │   ├── stage_witness.go
│   │   ├── stage_witness_processing.go
│   │   ├── stagebuilder.go
│   │   ├── stages/
│   │   │   ├── metrics.go
│   │   │   ├── stages.go
│   │   │   └── sync_mode.go
│   │   ├── sync.go
│   │   ├── sync_test.go
│   │   ├── testutil.go
│   │   └── types.go
│   ├── stages/
│   │   ├── blockchain_test.go
│   │   ├── bodydownload/
│   │   │   ├── body_algos.go
│   │   │   ├── body_data_struct.go
│   │   │   ├── body_test.go
│   │   │   └── prefetched_blocks.go
│   │   ├── chain_makers_test.go
│   │   ├── genesis_test.go
│   │   ├── headerdownload/
│   │   │   ├── header_algo_test.go
│   │   │   ├── header_algos.go
│   │   │   └── header_data_struct.go
│   │   ├── mock/
│   │   │   ├── accessors_chain_test.go
│   │   │   ├── accessors_indexes_test.go
│   │   │   ├── mock_sentry.go
│   │   │   └── sentry_mock_test.go
│   │   └── stageloop.go
│   ├── tests/
│   │   ├── block_test.go
│   │   ├── chaos_monkey/
│   │   │   └── chaos_monkey.go
│   │   ├── contracts/
│   │   │   ├── build/
│   │   │   │   ├── selfDestructor.abi
│   │   │   │   └── testcontract.abi
│   │   │   ├── gen.go
│   │   │   ├── gen_selfDestructor.go
│   │   │   ├── gen_testcontract.go
│   │   │   ├── selfDestructor.sol
│   │   │   └── testcontract.sol
│   │   ├── difficulty_test.go
│   │   ├── engine_api_reorg_test.go
│   │   ├── engine_api_tester.go
│   │   ├── init_test.go
│   │   ├── mock_cl.go
│   │   ├── rlp_test.go
│   │   ├── state_test.go
│   │   ├── statedb_chain_test.go
│   │   ├── statedb_insert_chain_transaction_test.go
│   │   ├── test-corners/
│   │   │   └── CallNonExistingAccount.json
│   │   ├── testforks/
│   │   │   └── forks.go
│   │   ├── testutil/
│   │   │   ├── block_test_util.go
│   │   │   ├── difficulty_test_util.go
│   │   │   ├── free_port.go
│   │   │   ├── gen_btheader.go
│   │   │   ├── gen_difficultytest.go
│   │   │   ├── gen_stenv.go
│   │   │   ├── rlp_test_util.go
│   │   │   ├── state_test_util.go
│   │   │   └── transaction_test_util.go
│   │   ├── transaction_test.go
│   │   └── txn_inclusion_verifier.go
│   ├── trie/
│   │   ├── .gitignore
│   │   ├── account_node_test.go
│   │   ├── debug.go
│   │   ├── delete_subrtee_test.go
│   │   ├── encoding.go
│   │   ├── encoding_test.go
│   │   ├── errors.go
│   │   ├── flatdb_sub_trie_loader_test.go
│   │   ├── gen_struct_step.go
│   │   ├── hack.go
│   │   ├── hashbuilder.go
│   │   ├── hasher.go
│   │   ├── hasher_test.go
│   │   ├── intermediate_hashes_test.go
│   │   ├── node.go
│   │   ├── proof.go
│   │   ├── retain_list.go
│   │   ├── retain_list_builder.go
│   │   ├── retain_list_test.go
│   │   ├── stream.go
│   │   ├── stream_test.go
│   │   ├── structural_test.go
│   │   ├── sub_trie_loader.go
│   │   ├── trie.go
│   │   ├── trie_from_witness.go
│   │   ├── trie_test.go
│   │   ├── trie_witness.go
│   │   ├── utils.go
│   │   ├── witness.go
│   │   ├── witness_builder.go
│   │   ├── witness_builder_test.go
│   │   ├── witness_marshalling.go
│   │   ├── witness_operators.go
│   │   ├── witness_operators_test.go
│   │   ├── witness_stats.go
│   │   └── witness_test.go
│   └── types/
│       ├── aa.abi
│       ├── aa_abi.go
│       ├── aa_transaction.go
│       ├── access_list_tx.go
│       ├── accounts/
│       │   ├── account.go
│       │   ├── account_benchmark_test.go
│       │   ├── account_proof.go
│       │   └── account_test.go
│       ├── authorization.go
│       ├── authorization_test.go
│       ├── blacklist.go
│       ├── blob_sidecars.go
│       ├── blob_sidecars_test.go
│       ├── blob_test_util.go
│       ├── blob_tx.go
│       ├── blob_tx_wrapper.go
│       ├── block.go
│       ├── block_test.go
│       ├── bloom9.go
│       ├── bloom9_test.go
│       ├── create_address.go
│       ├── create_address_test.go
│       ├── dynamic_fee_tx.go
│       ├── eip7685_requests.go
│       ├── encdec_test.go
│       ├── gen_aura_seal.go
│       ├── gen_erigon_log_json.go
│       ├── gen_genesis.go
│       ├── gen_genesis_account.go
│       ├── gen_header_json.go
│       ├── gen_log_json.go
│       ├── gen_receipt_json.go
│       ├── gen_withdrawal_json.go
│       ├── genesis.go
│       ├── hashing.go
│       ├── hashing_test.go
│       ├── legacy_tx.go
│       ├── log.go
│       ├── log_test.go
│       ├── receipt.go
│       ├── receipt_test.go
│       ├── requests_test.go
│       ├── set_code_tx.go
│       ├── state_data.go
│       ├── testdata/
│       │   └── testdata.go
│       ├── transaction.go
│       ├── transaction_marshalling.go
│       ├── transaction_signing.go
│       ├── transaction_signing_test.go
│       ├── transaction_test.go
│       ├── vote.go
│       ├── withdrawal.go
│       ├── withdrawal_test.go
│       └── witness/
│           └── types.go
├── funding.json
├── go.mod
├── go.sum
├── hooks/
│   ├── build
│   └── post_checkout
├── interfaces.go
├── internal/
│   └── reexec/
│       ├── reexec.go
│       ├── self_linux.go
│       └── self_others.go
├── k8s/
│   ├── base/
│   │   ├── kustomization.yaml
│   │   ├── services/
│   │   │   ├── eth66-peering-tcp.yaml
│   │   │   ├── eth66-peering-udp.yaml
│   │   │   ├── http.yaml
│   │   │   ├── kustomization.yaml
│   │   │   ├── metrics.yaml
│   │   │   ├── snap-sync-tcp.yaml
│   │   │   └── snap-sync-udp.yaml
│   │   └── statefulset.yaml
│   └── google-kubernetes-engine/
│       ├── kustomization.yaml
│       ├── podmonitoring.yaml
│       ├── statefulset-erigon-patch.yaml
│       └── tls/
│           ├── certificate.yaml
│           ├── ingress.yaml
│           └── kustomization.yaml
├── nightly.sh
├── node/
│   ├── direct/
│   │   ├── downloader_client.go
│   │   ├── eth_backend_client.go
│   │   ├── execution_client.go
│   │   ├── mining_client.go
│   │   ├── sentinel_client.go
│   │   ├── sentry_client.go
│   │   ├── sentry_client_mock.go
│   │   ├── state_diff_client.go
│   │   └── txpool_client.go
│   ├── doc.go
│   ├── endpoints.go
│   ├── errors.go
│   ├── lifecycle.go
│   ├── node.go
│   ├── node_example_test.go
│   ├── node_test.go
│   ├── nodecfg/
│   │   ├── config.go
│   │   ├── config_test.go
│   │   └── defaults.go
│   ├── paths/
│   │   └── paths.go
│   ├── rpcstack.go
│   ├── rpcstack_test.go
│   └── utils_test.go
├── oss-fuzz.sh
├── p2p/
│   ├── .gitignore
│   ├── dial.go
│   ├── dial_integration_test.go
│   ├── dial_test.go
│   ├── discover/
│   │   ├── common.go
│   │   ├── lookup.go
│   │   ├── lookup_util_test.go
│   │   ├── node.go
│   │   ├── ntp.go
│   │   ├── table.go
│   │   ├── table_integration_test.go
│   │   ├── table_test.go
│   │   ├── table_util_test.go
│   │   ├── v4_lookup_test.go
│   │   ├── v4_udp.go
│   │   ├── v4_udp_test.go
│   │   ├── v4wire/
│   │   │   ├── v4wire.go
│   │   │   └── v4wire_test.go
│   │   ├── v5_lookup_test.go
│   │   ├── v5_udp.go
│   │   ├── v5_udp_integration_test.go
│   │   ├── v5_udp_test.go
│   │   └── v5wire/
│   │       ├── crypto.go
│   │       ├── crypto_test.go
│   │       ├── encoding.go
│   │       ├── encoding_test.go
│   │       ├── msg.go
│   │       ├── session.go
│   │       └── testdata/
│   │           ├── v5.1-ping-handshake-enr.txt
│   │           ├── v5.1-ping-handshake.txt
│   │           ├── v5.1-ping-message.txt
│   │           └── v5.1-whoareyou.txt
│   ├── dnsdisc/
│   │   ├── client.go
│   │   ├── client_test.go
│   │   ├── doc.go
│   │   ├── error.go
│   │   ├── sync.go
│   │   ├── sync_test.go
│   │   ├── tree.go
│   │   └── tree_test.go
│   ├── enode/
│   │   ├── idscheme.go
│   │   ├── idscheme_test.go
│   │   ├── iter.go
│   │   ├── iter_integration_test.go
│   │   ├── iter_test.go
│   │   ├── localnode.go
│   │   ├── localnode_test.go
│   │   ├── node.go
│   │   ├── node_test.go
│   │   ├── nodedb.go
│   │   ├── nodedb_test.go
│   │   ├── urlv4.go
│   │   └── urlv4_test.go
│   ├── enr/
│   │   ├── enr.go
│   │   ├── enr_test.go
│   │   └── entries.go
│   ├── event/
│   │   ├── example_feed_test.go
│   │   ├── example_scope_test.go
│   │   ├── example_subscription_test.go
│   │   ├── feed.go
│   │   ├── feed_test.go
│   │   ├── subscription.go
│   │   └── subscription_test.go
│   ├── forkid/
│   │   ├── forkid.go
│   │   └── forkid_test.go
│   ├── message.go
│   ├── message_test.go
│   ├── metrics.go
│   ├── nat/
│   │   ├── nat.go
│   │   ├── nat_stun.go
│   │   ├── nat_test.go
│   │   ├── natpmp.go
│   │   ├── natupnp.go
│   │   └── natupnp_test.go
│   ├── netutil/
│   │   ├── addrutil.go
│   │   ├── error.go
│   │   ├── error_test.go
│   │   ├── iptrack.go
│   │   ├── iptrack_test.go
│   │   ├── net.go
│   │   ├── net_test.go
│   │   ├── toobig_notwindows.go
│   │   └── toobig_windows.go
│   ├── node_key_config.go
│   ├── peer.go
│   ├── peer_error.go
│   ├── peer_test.go
│   ├── pipes/
│   │   └── pipes.go
│   ├── protocol.go
│   ├── protocols/
│   │   ├── eth/
│   │   │   ├── discovery.go
│   │   │   ├── handler.go
│   │   │   ├── handlers.go
│   │   │   ├── protocol.go
│   │   │   └── protocol_test.go
│   │   └── wit/
│   │       ├── peer.go
│   │       └── protocol.go
│   ├── rlpx/
│   │   ├── buffer.go
│   │   ├── buffer_test.go
│   │   ├── rlpx.go
│   │   └── rlpx_test.go
│   ├── sentry/
│   │   ├── eth_handshake.go
│   │   ├── eth_handshake_test.go
│   │   ├── libsentry/
│   │   │   ├── loop.go
│   │   │   ├── protocol.go
│   │   │   ├── sentrymultiplexer.go
│   │   │   ├── util.go
│   │   │   └── util_test.go
│   │   ├── sentry_grpc_server.go
│   │   ├── sentry_grpc_server_test.go
│   │   ├── sentry_multi_client/
│   │   │   ├── broadcast.go
│   │   │   ├── sentry_api.go
│   │   │   ├── sentry_multi_client.go
│   │   │   ├── sentry_multi_client_test.go
│   │   │   └── witness_test.go
│   │   ├── sentrymultiplexer_test.go
│   │   └── status_data_provider.go
│   ├── server.go
│   ├── server_test.go
│   ├── transport.go
│   ├── transport_test.go
│   ├── util.go
│   └── util_test.go
├── polygon/
│   ├── bor/
│   │   ├── bor.go
│   │   ├── bor_internal_test.go
│   │   ├── bor_test.go
│   │   ├── borabi/
│   │   │   └── abi.go
│   │   ├── borcfg/
│   │   │   ├── bor_config.go
│   │   │   └── bor_config_test.go
│   │   ├── bordb/
│   │   │   └── prune.go
│   │   ├── bridge_reader_mock.go
│   │   ├── errors.go
│   │   ├── fake.go
│   │   ├── fee_log.go
│   │   ├── merkle.go
│   │   ├── spanner.go
│   │   ├── spanner_mock.go
│   │   ├── spanner_test_validators.go
│   │   ├── state_receiver.go
│   │   ├── state_receiver_mock.go
│   │   ├── statefull/
│   │   │   └── processor.go
│   │   └── types/
│   │       └── bor_receipt.go
│   ├── bridge/
│   │   ├── client.go
│   │   ├── client_http.go
│   │   ├── client_http_test.go
│   │   ├── client_idle.go
│   │   ├── client_mock.go
│   │   ├── event_fetch_test.go
│   │   ├── event_record.go
│   │   ├── log_prefix.go
│   │   ├── mdbx_store.go
│   │   ├── processed_block_info.go
│   │   ├── reader.go
│   │   ├── server.go
│   │   ├── service.go
│   │   ├── service_test.go
│   │   ├── snapshot_integrity.go
│   │   ├── snapshot_store.go
│   │   ├── snapshot_store_test.go
│   │   └── store.go
│   ├── chain/
│   │   ├── allocs/
│   │   │   ├── amoy.json
│   │   │   ├── bor_devnet.json
│   │   │   ├── bor_mainnet.json
│   │   │   └── mumbai.json
│   │   ├── bootnodes.go
│   │   ├── chainspecs/
│   │   │   ├── amoy.json
│   │   │   ├── bor-devnet.json
│   │   │   ├── bor-mainnet.json
│   │   │   └── mumbai.json
│   │   ├── config.go
│   │   ├── config_test.go
│   │   └── genesis.go
│   ├── heimdall/
│   │   ├── checkpoint.go
│   │   ├── checkpoint_test.go
│   │   ├── client.go
│   │   ├── client_http.go
│   │   ├── client_http_test.go
│   │   ├── client_idle.go
│   │   ├── client_mock.go
│   │   ├── closed_range.go
│   │   ├── cmp_block_range.go
│   │   ├── entity.go
│   │   ├── entity_fetcher.go
│   │   ├── entity_fetcher_mock.go
│   │   ├── entity_fetcher_test.go
│   │   ├── entity_store.go
│   │   ├── entity_store_mock.go
│   │   ├── heimdalltest/
│   │   │   └── test_json_marshal.go
│   │   ├── log_prefix.go
│   │   ├── milestone.go
│   │   ├── milestone_test.go
│   │   ├── poshttp/
│   │   │   ├── heimdall_client_mock.go
│   │   │   ├── http.go
│   │   │   ├── http_request_handler.go
│   │   │   ├── http_request_handler_mock.go
│   │   │   ├── metrics.go
│   │   │   ├── version_monitor.go
│   │   │   └── version_monitor_test.go
│   │   ├── range_index.go
│   │   ├── range_index_test.go
│   │   ├── reader.go
│   │   ├── scraper.go
│   │   ├── scraper_test.go
│   │   ├── server.go
│   │   ├── service.go
│   │   ├── service_observer_options.go
│   │   ├── service_store.go
│   │   ├── service_test.go
│   │   ├── snapshot_integrity.go
│   │   ├── snapshot_store.go
│   │   ├── snapshot_store_test.go
│   │   ├── snapshots.go
│   │   ├── span.go
│   │   ├── span_block_producer_selection.go
│   │   ├── span_block_producers_tracker.go
│   │   ├── span_range_index.go
│   │   ├── span_range_index_test.go
│   │   ├── span_test.go
│   │   ├── status.go
│   │   ├── testdata/
│   │   │   ├── amoy/
│   │   │   │   ├── checkpoints/
│   │   │   │   │   ├── checkpoint_1.json
│   │   │   │   │   ├── checkpoint_10.json
│   │   │   │   │   ├── checkpoint_100.json
│   │   │   │   │   ├── checkpoint_101.json
│   │   │   │   │   ├── checkpoint_102.json
│   │   │   │   │   ├── checkpoint_103.json
│   │   │   │   │   ├── checkpoint_104.json
│   │   │   │   │   ├── checkpoint_105.json
│   │   │   │   │   ├── checkpoint_106.json
│   │   │   │   │   ├── checkpoint_107.json
│   │   │   │   │   ├── checkpoint_108.json
│   │   │   │   │   ├── checkpoint_109.json
│   │   │   │   │   ├── checkpoint_11.json
│   │   │   │   │   ├── checkpoint_110.json
│   │   │   │   │   ├── checkpoint_111.json
│   │   │   │   │   ├── checkpoint_112.json
│   │   │   │   │   ├── checkpoint_113.json
│   │   │   │   │   ├── checkpoint_114.json
│   │   │   │   │   ├── checkpoint_115.json
│   │   │   │   │   ├── checkpoint_116.json
│   │   │   │   │   ├── checkpoint_117.json
│   │   │   │   │   ├── checkpoint_118.json
│   │   │   │   │   ├── checkpoint_119.json
│   │   │   │   │   ├── checkpoint_12.json
│   │   │   │   │   ├── checkpoint_120.json
│   │   │   │   │   ├── checkpoint_121.json
│   │   │   │   │   ├── checkpoint_122.json
│   │   │   │   │   ├── checkpoint_123.json
│   │   │   │   │   ├── checkpoint_124.json
│   │   │   │   │   ├── checkpoint_125.json
│   │   │   │   │   ├── checkpoint_126.json
│   │   │   │   │   ├── checkpoint_127.json
│   │   │   │   │   ├── checkpoint_128.json
│   │   │   │   │   ├── checkpoint_129.json
│   │   │   │   │   ├── checkpoint_13.json
│   │   │   │   │   ├── checkpoint_130.json
│   │   │   │   │   ├── checkpoint_131.json
│   │   │   │   │   ├── checkpoint_132.json
│   │   │   │   │   ├── checkpoint_133.json
│   │   │   │   │   ├── checkpoint_134.json
│   │   │   │   │   ├── checkpoint_135.json
│   │   │   │   │   ├── checkpoint_136.json
│   │   │   │   │   ├── checkpoint_137.json
│   │   │   │   │   ├── checkpoint_138.json
│   │   │   │   │   ├── checkpoint_139.json
│   │   │   │   │   ├── checkpoint_14.json
│   │   │   │   │   ├── checkpoint_140.json
│   │   │   │   │   ├── checkpoint_141.json
│   │   │   │   │   ├── checkpoint_142.json
│   │   │   │   │   ├── checkpoint_143.json
│   │   │   │   │   ├── checkpoint_144.json
│   │   │   │   │   ├── checkpoint_145.json
│   │   │   │   │   ├── checkpoint_146.json
│   │   │   │   │   ├── checkpoint_147.json
│   │   │   │   │   ├── checkpoint_148.json
│   │   │   │   │   ├── checkpoint_149.json
│   │   │   │   │   ├── checkpoint_15.json
│   │   │   │   │   ├── checkpoint_150.json
│   │   │   │   │   ├── checkpoint_16.json
│   │   │   │   │   ├── checkpoint_17.json
│   │   │   │   │   ├── checkpoint_18.json
│   │   │   │   │   ├── checkpoint_19.json
│   │   │   │   │   ├── checkpoint_2.json
│   │   │   │   │   ├── checkpoint_20.json
│   │   │   │   │   ├── checkpoint_21.json
│   │   │   │   │   ├── checkpoint_22.json
│   │   │   │   │   ├── checkpoint_23.json
│   │   │   │   │   ├── checkpoint_24.json
│   │   │   │   │   ├── checkpoint_25.json
│   │   │   │   │   ├── checkpoint_26.json
│   │   │   │   │   ├── checkpoint_27.json
│   │   │   │   │   ├── checkpoint_28.json
│   │   │   │   │   ├── checkpoint_29.json
│   │   │   │   │   ├── checkpoint_3.json
│   │   │   │   │   ├── checkpoint_30.json
│   │   │   │   │   ├── checkpoint_31.json
│   │   │   │   │   ├── checkpoint_32.json
│   │   │   │   │   ├── checkpoint_33.json
│   │   │   │   │   ├── checkpoint_34.json
│   │   │   │   │   ├── checkpoint_35.json
│   │   │   │   │   ├── checkpoint_36.json
│   │   │   │   │   ├── checkpoint_37.json
│   │   │   │   │   ├── checkpoint_38.json
│   │   │   │   │   ├── checkpoint_39.json
│   │   │   │   │   ├── checkpoint_4.json
│   │   │   │   │   ├── checkpoint_40.json
│   │   │   │   │   ├── checkpoint_41.json
│   │   │   │   │   ├── checkpoint_42.json
│   │   │   │   │   ├── checkpoint_43.json
│   │   │   │   │   ├── checkpoint_44.json
│   │   │   │   │   ├── checkpoint_45.json
│   │   │   │   │   ├── checkpoint_46.json
│   │   │   │   │   ├── checkpoint_47.json
│   │   │   │   │   ├── checkpoint_48.json
│   │   │   │   │   ├── checkpoint_49.json
│   │   │   │   │   ├── checkpoint_5.json
│   │   │   │   │   ├── checkpoint_50.json
│   │   │   │   │   ├── checkpoint_51.json
│   │   │   │   │   ├── checkpoint_52.json
│   │   │   │   │   ├── checkpoint_53.json
│   │   │   │   │   ├── checkpoint_54.json
│   │   │   │   │   ├── checkpoint_55.json
│   │   │   │   │   ├── checkpoint_56.json
│   │   │   │   │   ├── checkpoint_57.json
│   │   │   │   │   ├── checkpoint_58.json
│   │   │   │   │   ├── checkpoint_59.json
│   │   │   │   │   ├── checkpoint_6.json
│   │   │   │   │   ├── checkpoint_60.json
│   │   │   │   │   ├── checkpoint_61.json
│   │   │   │   │   ├── checkpoint_62.json
│   │   │   │   │   ├── checkpoint_63.json
│   │   │   │   │   ├── checkpoint_64.json
│   │   │   │   │   ├── checkpoint_65.json
│   │   │   │   │   ├── checkpoint_66.json
│   │   │   │   │   ├── checkpoint_67.json
│   │   │   │   │   ├── checkpoint_68.json
│   │   │   │   │   ├── checkpoint_69.json
│   │   │   │   │   ├── checkpoint_7.json
│   │   │   │   │   ├── checkpoint_70.json
│   │   │   │   │   ├── checkpoint_71.json
│   │   │   │   │   ├── checkpoint_72.json
│   │   │   │   │   ├── checkpoint_73.json
│   │   │   │   │   ├── checkpoint_74.json
│   │   │   │   │   ├── checkpoint_75.json
│   │   │   │   │   ├── checkpoint_76.json
│   │   │   │   │   ├── checkpoint_77.json
│   │   │   │   │   ├── checkpoint_78.json
│   │   │   │   │   ├── checkpoint_79.json
│   │   │   │   │   ├── checkpoint_8.json
│   │   │   │   │   ├── checkpoint_80.json
│   │   │   │   │   ├── checkpoint_81.json
│   │   │   │   │   ├── checkpoint_82.json
│   │   │   │   │   ├── checkpoint_83.json
│   │   │   │   │   ├── checkpoint_84.json
│   │   │   │   │   ├── checkpoint_85.json
│   │   │   │   │   ├── checkpoint_86.json
│   │   │   │   │   ├── checkpoint_87.json
│   │   │   │   │   ├── checkpoint_88.json
│   │   │   │   │   ├── checkpoint_89.json
│   │   │   │   │   ├── checkpoint_9.json
│   │   │   │   │   ├── checkpoint_90.json
│   │   │   │   │   ├── checkpoint_91.json
│   │   │   │   │   ├── checkpoint_92.json
│   │   │   │   │   ├── checkpoint_93.json
│   │   │   │   │   ├── checkpoint_94.json
│   │   │   │   │   ├── checkpoint_95.json
│   │   │   │   │   ├── checkpoint_96.json
│   │   │   │   │   ├── checkpoint_97.json
│   │   │   │   │   ├── checkpoint_98.json
│   │   │   │   │   └── checkpoint_99.json
│   │   │   │   ├── getSnapshotProposerSequence/
│   │   │   │   │   ├── blockNum_1.json
│   │   │   │   │   ├── blockNum_1062656.json
│   │   │   │   │   ├── blockNum_1069055.json
│   │   │   │   │   ├── blockNum_1069056.json
│   │   │   │   │   ├── blockNum_1072256.json
│   │   │   │   │   ├── blockNum_1075455.json
│   │   │   │   │   ├── blockNum_1075456.json
│   │   │   │   │   ├── blockNum_1081855.json
│   │   │   │   │   ├── blockNum_1158656.json
│   │   │   │   │   ├── blockNum_1165055.json
│   │   │   │   │   ├── blockNum_255.json
│   │   │   │   │   ├── blockNum_8179456.json
│   │   │   │   │   ├── blockNum_8185855.json
│   │   │   │   │   ├── blockNum_8185856.json
│   │   │   │   │   ├── blockNum_8187309.json
│   │   │   │   │   └── blockNum_8192255.json
│   │   │   │   ├── milestones/
│   │   │   │   │   ├── milestone_285542.json
│   │   │   │   │   ├── milestone_285543.json
│   │   │   │   │   ├── milestone_285544.json
│   │   │   │   │   ├── milestone_285545.json
│   │   │   │   │   ├── milestone_285546.json
│   │   │   │   │   ├── milestone_285547.json
│   │   │   │   │   ├── milestone_285548.json
│   │   │   │   │   ├── milestone_285549.json
│   │   │   │   │   ├── milestone_285550.json
│   │   │   │   │   ├── milestone_285551.json
│   │   │   │   │   ├── milestone_285552.json
│   │   │   │   │   ├── milestone_285553.json
│   │   │   │   │   ├── milestone_285554.json
│   │   │   │   │   ├── milestone_285555.json
│   │   │   │   │   ├── milestone_285556.json
│   │   │   │   │   ├── milestone_285557.json
│   │   │   │   │   ├── milestone_285558.json
│   │   │   │   │   ├── milestone_285559.json
│   │   │   │   │   ├── milestone_285560.json
│   │   │   │   │   ├── milestone_285561.json
│   │   │   │   │   ├── milestone_285562.json
│   │   │   │   │   ├── milestone_285563.json
│   │   │   │   │   ├── milestone_285564.json
│   │   │   │   │   ├── milestone_285565.json
│   │   │   │   │   ├── milestone_285566.json
│   │   │   │   │   ├── milestone_285567.json
│   │   │   │   │   ├── milestone_285568.json
│   │   │   │   │   ├── milestone_285569.json
│   │   │   │   │   ├── milestone_285570.json
│   │   │   │   │   ├── milestone_285571.json
│   │   │   │   │   ├── milestone_285572.json
│   │   │   │   │   ├── milestone_285573.json
│   │   │   │   │   ├── milestone_285574.json
│   │   │   │   │   ├── milestone_285575.json
│   │   │   │   │   ├── milestone_285576.json
│   │   │   │   │   ├── milestone_285577.json
│   │   │   │   │   ├── milestone_285578.json
│   │   │   │   │   ├── milestone_285579.json
│   │   │   │   │   ├── milestone_285580.json
│   │   │   │   │   ├── milestone_285581.json
│   │   │   │   │   ├── milestone_285582.json
│   │   │   │   │   ├── milestone_285583.json
│   │   │   │   │   ├── milestone_285584.json
│   │   │   │   │   ├── milestone_285585.json
│   │   │   │   │   ├── milestone_285586.json
│   │   │   │   │   ├── milestone_285587.json
│   │   │   │   │   ├── milestone_285588.json
│   │   │   │   │   ├── milestone_285589.json
│   │   │   │   │   ├── milestone_285590.json
│   │   │   │   │   ├── milestone_285591.json
│   │   │   │   │   ├── milestone_285592.json
│   │   │   │   │   ├── milestone_285593.json
│   │   │   │   │   ├── milestone_285594.json
│   │   │   │   │   ├── milestone_285595.json
│   │   │   │   │   ├── milestone_285596.json
│   │   │   │   │   ├── milestone_285597.json
│   │   │   │   │   ├── milestone_285598.json
│   │   │   │   │   ├── milestone_285599.json
│   │   │   │   │   ├── milestone_285600.json
│   │   │   │   │   ├── milestone_285601.json
│   │   │   │   │   ├── milestone_285602.json
│   │   │   │   │   ├── milestone_285603.json
│   │   │   │   │   ├── milestone_285604.json
│   │   │   │   │   ├── milestone_285605.json
│   │   │   │   │   ├── milestone_285606.json
│   │   │   │   │   ├── milestone_285607.json
│   │   │   │   │   ├── milestone_285608.json
│   │   │   │   │   ├── milestone_285609.json
│   │   │   │   │   ├── milestone_285610.json
│   │   │   │   │   ├── milestone_285611.json
│   │   │   │   │   ├── milestone_285612.json
│   │   │   │   │   ├── milestone_285613.json
│   │   │   │   │   ├── milestone_285614.json
│   │   │   │   │   ├── milestone_285615.json
│   │   │   │   │   ├── milestone_285616.json
│   │   │   │   │   ├── milestone_285617.json
│   │   │   │   │   ├── milestone_285618.json
│   │   │   │   │   ├── milestone_285619.json
│   │   │   │   │   ├── milestone_285620.json
│   │   │   │   │   ├── milestone_285621.json
│   │   │   │   │   ├── milestone_285622.json
│   │   │   │   │   ├── milestone_285623.json
│   │   │   │   │   ├── milestone_285624.json
│   │   │   │   │   ├── milestone_285625.json
│   │   │   │   │   ├── milestone_285626.json
│   │   │   │   │   ├── milestone_285627.json
│   │   │   │   │   ├── milestone_285628.json
│   │   │   │   │   ├── milestone_285629.json
│   │   │   │   │   ├── milestone_285630.json
│   │   │   │   │   ├── milestone_285631.json
│   │   │   │   │   ├── milestone_285632.json
│   │   │   │   │   ├── milestone_285633.json
│   │   │   │   │   ├── milestone_285634.json
│   │   │   │   │   ├── milestone_285635.json
│   │   │   │   │   ├── milestone_285636.json
│   │   │   │   │   ├── milestone_285637.json
│   │   │   │   │   ├── milestone_285638.json
│   │   │   │   │   ├── milestone_285639.json
│   │   │   │   │   ├── milestone_285640.json
│   │   │   │   │   └── milestone_285641.json
│   │   │   │   └── spans/
│   │   │   │       ├── span_0.json
│   │   │   │       ├── span_1.json
│   │   │   │       ├── span_10.json
│   │   │   │       ├── span_100.json
│   │   │   │       ├── span_1000.json
│   │   │   │       ├── span_1001.json
│   │   │   │       ├── span_1002.json
│   │   │   │       ├── span_1003.json
│   │   │   │       ├── span_1004.json
│   │   │   │       ├── span_1005.json
│   │   │   │       ├── span_1006.json
│   │   │   │       ├── span_1007.json
│   │   │   │       ├── span_1008.json
│   │   │   │       ├── span_1009.json
│   │   │   │       ├── span_101.json
│   │   │   │       ├── span_1010.json
│   │   │   │       ├── span_1011.json
│   │   │   │       ├── span_1012.json
│   │   │   │       ├── span_1013.json
│   │   │   │       ├── span_1014.json
│   │   │   │       ├── span_1015.json
│   │   │   │       ├── span_1016.json
│   │   │   │       ├── span_1017.json
│   │   │   │       ├── span_1018.json
│   │   │   │       ├── span_1019.json
│   │   │   │       ├── span_102.json
│   │   │   │       ├── span_1020.json
│   │   │   │       ├── span_1021.json
│   │   │   │       ├── span_1022.json
│   │   │   │       ├── span_1023.json
│   │   │   │       ├── span_1024.json
│   │   │   │       ├── span_1025.json
│   │   │   │       ├── span_1026.json
│   │   │   │       ├── span_1027.json
│   │   │   │       ├── span_1028.json
│   │   │   │       ├── span_1029.json
│   │   │   │       ├── span_103.json
│   │   │   │       ├── span_1030.json
│   │   │   │       ├── span_1031.json
│   │   │   │       ├── span_1032.json
│   │   │   │       ├── span_1033.json
│   │   │   │       ├── span_1034.json
│   │   │   │       ├── span_1035.json
│   │   │   │       ├── span_1036.json
│   │   │   │       ├── span_1037.json
│   │   │   │       ├── span_1038.json
│   │   │   │       ├── span_1039.json
│   │   │   │       ├── span_104.json
│   │   │   │       ├── span_1040.json
│   │   │   │       ├── span_1041.json
│   │   │   │       ├── span_1042.json
│   │   │   │       ├── span_1043.json
│   │   │   │       ├── span_1044.json
│   │   │   │       ├── span_1045.json
│   │   │   │       ├── span_1046.json
│   │   │   │       ├── span_1047.json
│   │   │   │       ├── span_1048.json
│   │   │   │       ├── span_1049.json
│   │   │   │       ├── span_105.json
│   │   │   │       ├── span_1050.json
│   │   │   │       ├── span_1051.json
│   │   │   │       ├── span_1052.json
│   │   │   │       ├── span_1053.json
│   │   │   │       ├── span_1054.json
│   │   │   │       ├── span_1055.json
│   │   │   │       ├── span_1056.json
│   │   │   │       ├── span_1057.json
│   │   │   │       ├── span_1058.json
│   │   │   │       ├── span_1059.json
│   │   │   │       ├── span_106.json
│   │   │   │       ├── span_1060.json
│   │   │   │       ├── span_1061.json
│   │   │   │       ├── span_1062.json
│   │   │   │       ├── span_1063.json
│   │   │   │       ├── span_1064.json
│   │   │   │       ├── span_1065.json
│   │   │   │       ├── span_1066.json
│   │   │   │       ├── span_1067.json
│   │   │   │       ├── span_1068.json
│   │   │   │       ├── span_1069.json
│   │   │   │       ├── span_107.json
│   │   │   │       ├── span_1070.json
│   │   │   │       ├── span_1071.json
│   │   │   │       ├── span_1072.json
│   │   │   │       ├── span_1073.json
│   │   │   │       ├── span_1074.json
│   │   │   │       ├── span_1075.json
│   │   │   │       ├── span_1076.json
│   │   │   │       ├── span_1077.json
│   │   │   │       ├── span_1078.json
│   │   │   │       ├── span_1079.json
│   │   │   │       ├── span_108.json
│   │   │   │       ├── span_1080.json
│   │   │   │       ├── span_1081.json
│   │   │   │       ├── span_1082.json
│   │   │   │       ├── span_1083.json
│   │   │   │       ├── span_1084.json
│   │   │   │       ├── span_1085.json
│   │   │   │       ├── span_1086.json
│   │   │   │       ├── span_1087.json
│   │   │   │       ├── span_1088.json
│   │   │   │       ├── span_1089.json
│   │   │   │       ├── span_109.json
│   │   │   │       ├── span_1090.json
│   │   │   │       ├── span_1091.json
│   │   │   │       ├── span_1092.json
│   │   │   │       ├── span_1093.json
│   │   │   │       ├── span_1094.json
│   │   │   │       ├── span_1095.json
│   │   │   │       ├── span_1096.json
│   │   │   │       ├── span_1097.json
│   │   │   │       ├── span_1098.json
│   │   │   │       ├── span_1099.json
│   │   │   │       ├── span_11.json
│   │   │   │       ├── span_110.json
│   │   │   │       ├── span_1100.json
│   │   │   │       ├── span_1101.json
│   │   │   │       ├── span_1102.json
│   │   │   │       ├── span_1103.json
│   │   │   │       ├── span_1104.json
│   │   │   │       ├── span_1105.json
│   │   │   │       ├── span_1106.json
│   │   │   │       ├── span_1107.json
│   │   │   │       ├── span_1108.json
│   │   │   │       ├── span_1109.json
│   │   │   │       ├── span_111.json
│   │   │   │       ├── span_1110.json
│   │   │   │       ├── span_1111.json
│   │   │   │       ├── span_1112.json
│   │   │   │       ├── span_1113.json
│   │   │   │       ├── span_1114.json
│   │   │   │       ├── span_1115.json
│   │   │   │       ├── span_1116.json
│   │   │   │       ├── span_1117.json
│   │   │   │       ├── span_1118.json
│   │   │   │       ├── span_1119.json
│   │   │   │       ├── span_112.json
│   │   │   │       ├── span_1120.json
│   │   │   │       ├── span_1121.json
│   │   │   │       ├── span_1122.json
│   │   │   │       ├── span_1123.json
│   │   │   │       ├── span_1124.json
│   │   │   │       ├── span_1125.json
│   │   │   │       ├── span_1126.json
│   │   │   │       ├── span_1127.json
│   │   │   │       ├── span_1128.json
│   │   │   │       ├── span_1129.json
│   │   │   │       ├── span_113.json
│   │   │   │       ├── span_1130.json
│   │   │   │       ├── span_1131.json
│   │   │   │       ├── span_1132.json
│   │   │   │       ├── span_1133.json
│   │   │   │       ├── span_1134.json
│   │   │   │       ├── span_1135.json
│   │   │   │       ├── span_1136.json
│   │   │   │       ├── span_1137.json
│   │   │   │       ├── span_1138.json
│   │   │   │       ├── span_1139.json
│   │   │   │       ├── span_114.json
│   │   │   │       ├── span_1140.json
│   │   │   │       ├── span_1141.json
│   │   │   │       ├── span_1142.json
│   │   │   │       ├── span_1143.json
│   │   │   │       ├── span_1144.json
│   │   │   │       ├── span_1145.json
│   │   │   │       ├── span_1146.json
│   │   │   │       ├── span_1147.json
│   │   │   │       ├── span_1148.json
│   │   │   │       ├── span_1149.json
│   │   │   │       ├── span_115.json
│   │   │   │       ├── span_1150.json
│   │   │   │       ├── span_1151.json
│   │   │   │       ├── span_1152.json
│   │   │   │       ├── span_1153.json
│   │   │   │       ├── span_1154.json
│   │   │   │       ├── span_1155.json
│   │   │   │       ├── span_1156.json
│   │   │   │       ├── span_1157.json
│   │   │   │       ├── span_1158.json
│   │   │   │       ├── span_1159.json
│   │   │   │       ├── span_116.json
│   │   │   │       ├── span_1160.json
│   │   │   │       ├── span_1161.json
│   │   │   │       ├── span_1162.json
│   │   │   │       ├── span_1163.json
│   │   │   │       ├── span_1164.json
│   │   │   │       ├── span_1165.json
│   │   │   │       ├── span_1166.json
│   │   │   │       ├── span_1167.json
│   │   │   │       ├── span_1168.json
│   │   │   │       ├── span_1169.json
│   │   │   │       ├── span_117.json
│   │   │   │       ├── span_1170.json
│   │   │   │       ├── span_1171.json
│   │   │   │       ├── span_1172.json
│   │   │   │       ├── span_1173.json
│   │   │   │       ├── span_1174.json
│   │   │   │       ├── span_1175.json
│   │   │   │       ├── span_1176.json
│   │   │   │       ├── span_1177.json
│   │   │   │       ├── span_1178.json
│   │   │   │       ├── span_1179.json
│   │   │   │       ├── span_118.json
│   │   │   │       ├── span_1180.json
│   │   │   │       ├── span_1181.json
│   │   │   │       ├── span_1182.json
│   │   │   │       ├── span_1183.json
│   │   │   │       ├── span_1184.json
│   │   │   │       ├── span_1185.json
│   │   │   │       ├── span_1186.json
│   │   │   │       ├── span_1187.json
│   │   │   │       ├── span_1188.json
│   │   │   │       ├── span_1189.json
│   │   │   │       ├── span_119.json
│   │   │   │       ├── span_1190.json
│   │   │   │       ├── span_1191.json
│   │   │   │       ├── span_1192.json
│   │   │   │       ├── span_1193.json
│   │   │   │       ├── span_1194.json
│   │   │   │       ├── span_1195.json
│   │   │   │       ├── span_1196.json
│   │   │   │       ├── span_1197.json
│   │   │   │       ├── span_1198.json
│   │   │   │       ├── span_1199.json
│   │   │   │       ├── span_12.json
│   │   │   │       ├── span_120.json
│   │   │   │       ├── span_1200.json
│   │   │   │       ├── span_1201.json
│   │   │   │       ├── span_1202.json
│   │   │   │       ├── span_1203.json
│   │   │   │       ├── span_1204.json
│   │   │   │       ├── span_1205.json
│   │   │   │       ├── span_1206.json
│   │   │   │       ├── span_1207.json
│   │   │   │       ├── span_1208.json
│   │   │   │       ├── span_1209.json
│   │   │   │       ├── span_121.json
│   │   │   │       ├── span_1210.json
│   │   │   │       ├── span_1211.json
│   │   │   │       ├── span_1212.json
│   │   │   │       ├── span_1213.json
│   │   │   │       ├── span_1214.json
│   │   │   │       ├── span_1215.json
│   │   │   │       ├── span_1216.json
│   │   │   │       ├── span_1217.json
│   │   │   │       ├── span_1218.json
│   │   │   │       ├── span_1219.json
│   │   │   │       ├── span_122.json
│   │   │   │       ├── span_1220.json
│   │   │   │       ├── span_1221.json
│   │   │   │       ├── span_1222.json
│   │   │   │       ├── span_1223.json
│   │   │   │       ├── span_1224.json
│   │   │   │       ├── span_1225.json
│   │   │   │       ├── span_1226.json
│   │   │   │       ├── span_1227.json
│   │   │   │       ├── span_1228.json
│   │   │   │       ├── span_1229.json
│   │   │   │       ├── span_123.json
│   │   │   │       ├── span_1230.json
│   │   │   │       ├── span_1231.json
│   │   │   │       ├── span_1232.json
│   │   │   │       ├── span_1233.json
│   │   │   │       ├── span_1234.json
│   │   │   │       ├── span_1235.json
│   │   │   │       ├── span_1236.json
│   │   │   │       ├── span_1237.json
│   │   │   │       ├── span_1238.json
│   │   │   │       ├── span_1239.json
│   │   │   │       ├── span_124.json
│   │   │   │       ├── span_1240.json
│   │   │   │       ├── span_1241.json
│   │   │   │       ├── span_1242.json
│   │   │   │       ├── span_1243.json
│   │   │   │       ├── span_1244.json
│   │   │   │       ├── span_1245.json
│   │   │   │       ├── span_1246.json
│   │   │   │       ├── span_1247.json
│   │   │   │       ├── span_1248.json
│   │   │   │       ├── span_1249.json
│   │   │   │       ├── span_125.json
│   │   │   │       ├── span_1250.json
│   │   │   │       ├── span_1251.json
│   │   │   │       ├── span_1252.json
│   │   │   │       ├── span_1253.json
│   │   │   │       ├── span_1254.json
│   │   │   │       ├── span_1255.json
│   │   │   │       ├── span_1256.json
│   │   │   │       ├── span_1257.json
│   │   │   │       ├── span_1258.json
│   │   │   │       ├── span_1259.json
│   │   │   │       ├── span_126.json
│   │   │   │       ├── span_1260.json
│   │   │   │       ├── span_1261.json
│   │   │   │       ├── span_1262.json
│   │   │   │       ├── span_1263.json
│   │   │   │       ├── span_1264.json
│   │   │   │       ├── span_1265.json
│   │   │   │       ├── span_1266.json
│   │   │   │       ├── span_1267.json
│   │   │   │       ├── span_1268.json
│   │   │   │       ├── span_1269.json
│   │   │   │       ├── span_127.json
│   │   │   │       ├── span_1270.json
│   │   │   │       ├── span_1271.json
│   │   │   │       ├── span_1272.json
│   │   │   │       ├── span_1273.json
│   │   │   │       ├── span_1274.json
│   │   │   │       ├── span_1275.json
│   │   │   │       ├── span_1276.json
│   │   │   │       ├── span_1277.json
│   │   │   │       ├── span_1278.json
│   │   │   │       ├── span_1279.json
│   │   │   │       ├── span_128.json
│   │   │   │       ├── span_1280.json
│   │   │   │       ├── span_129.json
│   │   │   │       ├── span_13.json
│   │   │   │       ├── span_130.json
│   │   │   │       ├── span_131.json
│   │   │   │       ├── span_132.json
│   │   │   │       ├── span_133.json
│   │   │   │       ├── span_134.json
│   │   │   │       ├── span_135.json
│   │   │   │       ├── span_136.json
│   │   │   │       ├── span_137.json
│   │   │   │       ├── span_138.json
│   │   │   │       ├── span_139.json
│   │   │   │       ├── span_14.json
│   │   │   │       ├── span_140.json
│   │   │   │       ├── span_141.json
│   │   │   │       ├── span_142.json
│   │   │   │       ├── span_143.json
│   │   │   │       ├── span_144.json
│   │   │   │       ├── span_145.json
│   │   │   │       ├── span_146.json
│   │   │   │       ├── span_147.json
│   │   │   │       ├── span_148.json
│   │   │   │       ├── span_149.json
│   │   │   │       ├── span_15.json
│   │   │   │       ├── span_150.json
│   │   │   │       ├── span_151.json
│   │   │   │       ├── span_152.json
│   │   │   │       ├── span_153.json
│   │   │   │       ├── span_154.json
│   │   │   │       ├── span_155.json
│   │   │   │       ├── span_156.json
│   │   │   │       ├── span_157.json
│   │   │   │       ├── span_158.json
│   │   │   │       ├── span_159.json
│   │   │   │       ├── span_16.json
│   │   │   │       ├── span_160.json
│   │   │   │       ├── span_161.json
│   │   │   │       ├── span_162.json
│   │   │   │       ├── span_163.json
│   │   │   │       ├── span_164.json
│   │   │   │       ├── span_165.json
│   │   │   │       ├── span_166.json
│   │   │   │       ├── span_167.json
│   │   │   │       ├── span_168.json
│   │   │   │       ├── span_169.json
│   │   │   │       ├── span_17.json
│   │   │   │       ├── span_170.json
│   │   │   │       ├── span_171.json
│   │   │   │       ├── span_172.json
│   │   │   │       ├── span_173.json
│   │   │   │       ├── span_174.json
│   │   │   │       ├── span_175.json
│   │   │   │       ├── span_176.json
│   │   │   │       ├── span_177.json
│   │   │   │       ├── span_178.json
│   │   │   │       ├── span_179.json
│   │   │   │       ├── span_18.json
│   │   │   │       ├── span_180.json
│   │   │   │       ├── span_181.json
│   │   │   │       ├── span_182.json
│   │   │   │       ├── span_183.json
│   │   │   │       ├── span_184.json
│   │   │   │       ├── span_185.json
│   │   │   │       ├── span_186.json
│   │   │   │       ├── span_187.json
│   │   │   │       ├── span_188.json
│   │   │   │       ├── span_189.json
│   │   │   │       ├── span_19.json
│   │   │   │       ├── span_190.json
│   │   │   │       ├── span_191.json
│   │   │   │       ├── span_192.json
│   │   │   │       ├── span_193.json
│   │   │   │       ├── span_194.json
│   │   │   │       ├── span_195.json
│   │   │   │       ├── span_196.json
│   │   │   │       ├── span_197.json
│   │   │   │       ├── span_198.json
│   │   │   │       ├── span_199.json
│   │   │   │       ├── span_2.json
│   │   │   │       ├── span_20.json
│   │   │   │       ├── span_200.json
│   │   │   │       ├── span_201.json
│   │   │   │       ├── span_202.json
│   │   │   │       ├── span_203.json
│   │   │   │       ├── span_204.json
│   │   │   │       ├── span_205.json
│   │   │   │       ├── span_206.json
│   │   │   │       ├── span_207.json
│   │   │   │       ├── span_208.json
│   │   │   │       ├── span_209.json
│   │   │   │       ├── span_21.json
│   │   │   │       ├── span_210.json
│   │   │   │       ├── span_211.json
│   │   │   │       ├── span_212.json
│   │   │   │       ├── span_213.json
│   │   │   │       ├── span_214.json
│   │   │   │       ├── span_215.json
│   │   │   │       ├── span_216.json
│   │   │   │       ├── span_217.json
│   │   │   │       ├── span_218.json
│   │   │   │       ├── span_219.json
│   │   │   │       ├── span_22.json
│   │   │   │       ├── span_220.json
│   │   │   │       ├── span_221.json
│   │   │   │       ├── span_222.json
│   │   │   │       ├── span_223.json
│   │   │   │       ├── span_224.json
│   │   │   │       ├── span_225.json
│   │   │   │       ├── span_226.json
│   │   │   │       ├── span_227.json
│   │   │   │       ├── span_228.json
│   │   │   │       ├── span_229.json
│   │   │   │       ├── span_23.json
│   │   │   │       ├── span_230.json
│   │   │   │       ├── span_231.json
│   │   │   │       ├── span_232.json
│   │   │   │       ├── span_233.json
│   │   │   │       ├── span_234.json
│   │   │   │       ├── span_235.json
│   │   │   │       ├── span_236.json
│   │   │   │       ├── span_237.json
│   │   │   │       ├── span_238.json
│   │   │   │       ├── span_239.json
│   │   │   │       ├── span_24.json
│   │   │   │       ├── span_240.json
│   │   │   │       ├── span_241.json
│   │   │   │       ├── span_242.json
│   │   │   │       ├── span_243.json
│   │   │   │       ├── span_244.json
│   │   │   │       ├── span_245.json
│   │   │   │       ├── span_246.json
│   │   │   │       ├── span_247.json
│   │   │   │       ├── span_248.json
│   │   │   │       ├── span_249.json
│   │   │   │       ├── span_25.json
│   │   │   │       ├── span_250.json
│   │   │   │       ├── span_251.json
│   │   │   │       ├── span_252.json
│   │   │   │       ├── span_253.json
│   │   │   │       ├── span_254.json
│   │   │   │       ├── span_255.json
│   │   │   │       ├── span_256.json
│   │   │   │       ├── span_257.json
│   │   │   │       ├── span_258.json
│   │   │   │       ├── span_259.json
│   │   │   │       ├── span_26.json
│   │   │   │       ├── span_260.json
│   │   │   │       ├── span_261.json
│   │   │   │       ├── span_262.json
│   │   │   │       ├── span_263.json
│   │   │   │       ├── span_264.json
│   │   │   │       ├── span_265.json
│   │   │   │       ├── span_266.json
│   │   │   │       ├── span_267.json
│   │   │   │       ├── span_268.json
│   │   │   │       ├── span_269.json
│   │   │   │       ├── span_27.json
│   │   │   │       ├── span_270.json
│   │   │   │       ├── span_271.json
│   │   │   │       ├── span_272.json
│   │   │   │       ├── span_273.json
│   │   │   │       ├── span_274.json
│   │   │   │       ├── span_275.json
│   │   │   │       ├── span_276.json
│   │   │   │       ├── span_277.json
│   │   │   │       ├── span_278.json
│   │   │   │       ├── span_279.json
│   │   │   │       ├── span_28.json
│   │   │   │       ├── span_280.json
│   │   │   │       ├── span_281.json
│   │   │   │       ├── span_282.json
│   │   │   │       ├── span_283.json
│   │   │   │       ├── span_284.json
│   │   │   │       ├── span_285.json
│   │   │   │       ├── span_286.json
│   │   │   │       ├── span_287.json
│   │   │   │       ├── span_288.json
│   │   │   │       ├── span_289.json
│   │   │   │       ├── span_29.json
│   │   │   │       ├── span_290.json
│   │   │   │       ├── span_291.json
│   │   │   │       ├── span_292.json
│   │   │   │       ├── span_293.json
│   │   │   │       ├── span_294.json
│   │   │   │       ├── span_295.json
│   │   │   │       ├── span_296.json
│   │   │   │       ├── span_297.json
│   │   │   │       ├── span_298.json
│   │   │   │       ├── span_299.json
│   │   │   │       ├── span_3.json
│   │   │   │       ├── span_30.json
│   │   │   │       ├── span_300.json
│   │   │   │       ├── span_301.json
│   │   │   │       ├── span_302.json
│   │   │   │       ├── span_303.json
│   │   │   │       ├── span_304.json
│   │   │   │       ├── span_305.json
│   │   │   │       ├── span_306.json
│   │   │   │       ├── span_307.json
│   │   │   │       ├── span_308.json
│   │   │   │       ├── span_309.json
│   │   │   │       ├── span_31.json
│   │   │   │       ├── span_310.json
│   │   │   │       ├── span_311.json
│   │   │   │       ├── span_312.json
│   │   │   │       ├── span_313.json
│   │   │   │       ├── span_314.json
│   │   │   │       ├── span_315.json
│   │   │   │       ├── span_316.json
│   │   │   │       ├── span_317.json
│   │   │   │       ├── span_318.json
│   │   │   │       ├── span_319.json
│   │   │   │       ├── span_32.json
│   │   │   │       ├── span_320.json
│   │   │   │       ├── span_321.json
│   │   │   │       ├── span_322.json
│   │   │   │       ├── span_323.json
│   │   │   │       ├── span_324.json
│   │   │   │       ├── span_325.json
│   │   │   │       ├── span_326.json
│   │   │   │       ├── span_327.json
│   │   │   │       ├── span_328.json
│   │   │   │       ├── span_329.json
│   │   │   │       ├── span_33.json
│   │   │   │       ├── span_330.json
│   │   │   │       ├── span_331.json
│   │   │   │       ├── span_332.json
│   │   │   │       ├── span_333.json
│   │   │   │       ├── span_334.json
│   │   │   │       ├── span_335.json
│   │   │   │       ├── span_336.json
│   │   │   │       ├── span_337.json
│   │   │   │       ├── span_338.json
│   │   │   │       ├── span_339.json
│   │   │   │       ├── span_34.json
│   │   │   │       ├── span_340.json
│   │   │   │       ├── span_341.json
│   │   │   │       ├── span_342.json
│   │   │   │       ├── span_343.json
│   │   │   │       ├── span_344.json
│   │   │   │       ├── span_345.json
│   │   │   │       ├── span_346.json
│   │   │   │       ├── span_347.json
│   │   │   │       ├── span_348.json
│   │   │   │       ├── span_349.json
│   │   │   │       ├── span_35.json
│   │   │   │       ├── span_350.json
│   │   │   │       ├── span_351.json
│   │   │   │       ├── span_352.json
│   │   │   │       ├── span_353.json
│   │   │   │       ├── span_354.json
│   │   │   │       ├── span_355.json
│   │   │   │       ├── span_356.json
│   │   │   │       ├── span_357.json
│   │   │   │       ├── span_358.json
│   │   │   │       ├── span_359.json
│   │   │   │       ├── span_36.json
│   │   │   │       ├── span_360.json
│   │   │   │       ├── span_361.json
│   │   │   │       ├── span_362.json
│   │   │   │       ├── span_363.json
│   │   │   │       ├── span_364.json
│   │   │   │       ├── span_365.json
│   │   │   │       ├── span_366.json
│   │   │   │       ├── span_367.json
│   │   │   │       ├── span_368.json
│   │   │   │       ├── span_369.json
│   │   │   │       ├── span_37.json
│   │   │   │       ├── span_370.json
│   │   │   │       ├── span_371.json
│   │   │   │       ├── span_372.json
│   │   │   │       ├── span_373.json
│   │   │   │       ├── span_374.json
│   │   │   │       ├── span_375.json
│   │   │   │       ├── span_376.json
│   │   │   │       ├── span_377.json
│   │   │   │       ├── span_378.json
│   │   │   │       ├── span_379.json
│   │   │   │       ├── span_38.json
│   │   │   │       ├── span_380.json
│   │   │   │       ├── span_381.json
│   │   │   │       ├── span_382.json
│   │   │   │       ├── span_383.json
│   │   │   │       ├── span_384.json
│   │   │   │       ├── span_385.json
│   │   │   │       ├── span_386.json
│   │   │   │       ├── span_387.json
│   │   │   │       ├── span_388.json
│   │   │   │       ├── span_389.json
│   │   │   │       ├── span_39.json
│   │   │   │       ├── span_390.json
│   │   │   │       ├── span_391.json
│   │   │   │       ├── span_392.json
│   │   │   │       ├── span_393.json
│   │   │   │       ├── span_394.json
│   │   │   │       ├── span_395.json
│   │   │   │       ├── span_396.json
│   │   │   │       ├── span_397.json
│   │   │   │       ├── span_398.json
│   │   │   │       ├── span_399.json
│   │   │   │       ├── span_4.json
│   │   │   │       ├── span_40.json
│   │   │   │       ├── span_400.json
│   │   │   │       ├── span_401.json
│   │   │   │       ├── span_402.json
│   │   │   │       ├── span_403.json
│   │   │   │       ├── span_404.json
│   │   │   │       ├── span_405.json
│   │   │   │       ├── span_406.json
│   │   │   │       ├── span_407.json
│   │   │   │       ├── span_408.json
│   │   │   │       ├── span_409.json
│   │   │   │       ├── span_41.json
│   │   │   │       ├── span_410.json
│   │   │   │       ├── span_411.json
│   │   │   │       ├── span_412.json
│   │   │   │       ├── span_413.json
│   │   │   │       ├── span_414.json
│   │   │   │       ├── span_415.json
│   │   │   │       ├── span_416.json
│   │   │   │       ├── span_417.json
│   │   │   │       ├── span_418.json
│   │   │   │       ├── span_419.json
│   │   │   │       ├── span_42.json
│   │   │   │       ├── span_420.json
│   │   │   │       ├── span_421.json
│   │   │   │       ├── span_422.json
│   │   │   │       ├── span_423.json
│   │   │   │       ├── span_424.json
│   │   │   │       ├── span_425.json
│   │   │   │       ├── span_426.json
│   │   │   │       ├── span_427.json
│   │   │   │       ├── span_428.json
│   │   │   │       ├── span_429.json
│   │   │   │       ├── span_43.json
│   │   │   │       ├── span_430.json
│   │   │   │       ├── span_431.json
│   │   │   │       ├── span_432.json
│   │   │   │       ├── span_433.json
│   │   │   │       ├── span_434.json
│   │   │   │       ├── span_435.json
│   │   │   │       ├── span_436.json
│   │   │   │       ├── span_437.json
│   │   │   │       ├── span_438.json
│   │   │   │       ├── span_439.json
│   │   │   │       ├── span_44.json
│   │   │   │       ├── span_440.json
│   │   │   │       ├── span_441.json
│   │   │   │       ├── span_442.json
│   │   │   │       ├── span_443.json
│   │   │   │       ├── span_444.json
│   │   │   │       ├── span_445.json
│   │   │   │       ├── span_446.json
│   │   │   │       ├── span_447.json
│   │   │   │       ├── span_448.json
│   │   │   │       ├── span_449.json
│   │   │   │       ├── span_45.json
│   │   │   │       ├── span_450.json
│   │   │   │       ├── span_451.json
│   │   │   │       ├── span_452.json
│   │   │   │       ├── span_453.json
│   │   │   │       ├── span_454.json
│   │   │   │       ├── span_455.json
│   │   │   │       ├── span_456.json
│   │   │   │       ├── span_457.json
│   │   │   │       ├── span_458.json
│   │   │   │       ├── span_459.json
│   │   │   │       ├── span_46.json
│   │   │   │       ├── span_460.json
│   │   │   │       ├── span_461.json
│   │   │   │       ├── span_462.json
│   │   │   │       ├── span_463.json
│   │   │   │       ├── span_464.json
│   │   │   │       ├── span_465.json
│   │   │   │       ├── span_466.json
│   │   │   │       ├── span_467.json
│   │   │   │       ├── span_468.json
│   │   │   │       ├── span_469.json
│   │   │   │       ├── span_47.json
│   │   │   │       ├── span_470.json
│   │   │   │       ├── span_471.json
│   │   │   │       ├── span_472.json
│   │   │   │       ├── span_473.json
│   │   │   │       ├── span_474.json
│   │   │   │       ├── span_475.json
│   │   │   │       ├── span_476.json
│   │   │   │       ├── span_477.json
│   │   │   │       ├── span_478.json
│   │   │   │       ├── span_479.json
│   │   │   │       ├── span_48.json
│   │   │   │       ├── span_480.json
│   │   │   │       ├── span_481.json
│   │   │   │       ├── span_482.json
│   │   │   │       ├── span_483.json
│   │   │   │       ├── span_484.json
│   │   │   │       ├── span_485.json
│   │   │   │       ├── span_486.json
│   │   │   │       ├── span_487.json
│   │   │   │       ├── span_488.json
│   │   │   │       ├── span_489.json
│   │   │   │       ├── span_49.json
│   │   │   │       ├── span_490.json
│   │   │   │       ├── span_491.json
│   │   │   │       ├── span_492.json
│   │   │   │       ├── span_493.json
│   │   │   │       ├── span_494.json
│   │   │   │       ├── span_495.json
│   │   │   │       ├── span_496.json
│   │   │   │       ├── span_497.json
│   │   │   │       ├── span_498.json
│   │   │   │       ├── span_499.json
│   │   │   │       ├── span_5.json
│   │   │   │       ├── span_50.json
│   │   │   │       ├── span_500.json
│   │   │   │       ├── span_501.json
│   │   │   │       ├── span_502.json
│   │   │   │       ├── span_503.json
│   │   │   │       ├── span_504.json
│   │   │   │       ├── span_505.json
│   │   │   │       ├── span_506.json
│   │   │   │       ├── span_507.json
│   │   │   │       ├── span_508.json
│   │   │   │       ├── span_509.json
│   │   │   │       ├── span_51.json
│   │   │   │       ├── span_510.json
│   │   │   │       ├── span_511.json
│   │   │   │       ├── span_512.json
│   │   │   │       ├── span_513.json
│   │   │   │       ├── span_514.json
│   │   │   │       ├── span_515.json
│   │   │   │       ├── span_516.json
│   │   │   │       ├── span_517.json
│   │   │   │       ├── span_518.json
│   │   │   │       ├── span_519.json
│   │   │   │       ├── span_52.json
│   │   │   │       ├── span_520.json
│   │   │   │       ├── span_521.json
│   │   │   │       ├── span_522.json
│   │   │   │       ├── span_523.json
│   │   │   │       ├── span_524.json
│   │   │   │       ├── span_525.json
│   │   │   │       ├── span_526.json
│   │   │   │       ├── span_527.json
│   │   │   │       ├── span_528.json
│   │   │   │       ├── span_529.json
│   │   │   │       ├── span_53.json
│   │   │   │       ├── span_530.json
│   │   │   │       ├── span_531.json
│   │   │   │       ├── span_532.json
│   │   │   │       ├── span_533.json
│   │   │   │       ├── span_534.json
│   │   │   │       ├── span_535.json
│   │   │   │       ├── span_536.json
│   │   │   │       ├── span_537.json
│   │   │   │       ├── span_538.json
│   │   │   │       ├── span_539.json
│   │   │   │       ├── span_54.json
│   │   │   │       ├── span_540.json
│   │   │   │       ├── span_541.json
│   │   │   │       ├── span_542.json
│   │   │   │       ├── span_543.json
│   │   │   │       ├── span_544.json
│   │   │   │       ├── span_545.json
│   │   │   │       ├── span_546.json
│   │   │   │       ├── span_547.json
│   │   │   │       ├── span_548.json
│   │   │   │       ├── span_549.json
│   │   │   │       ├── span_55.json
│   │   │   │       ├── span_550.json
│   │   │   │       ├── span_551.json
│   │   │   │       ├── span_552.json
│   │   │   │       ├── span_553.json
│   │   │   │       ├── span_554.json
│   │   │   │       ├── span_555.json
│   │   │   │       ├── span_556.json
│   │   │   │       ├── span_557.json
│   │   │   │       ├── span_558.json
│   │   │   │       ├── span_559.json
│   │   │   │       ├── span_56.json
│   │   │   │       ├── span_560.json
│   │   │   │       ├── span_561.json
│   │   │   │       ├── span_562.json
│   │   │   │       ├── span_563.json
│   │   │   │       ├── span_564.json
│   │   │   │       ├── span_565.json
│   │   │   │       ├── span_566.json
│   │   │   │       ├── span_567.json
│   │   │   │       ├── span_568.json
│   │   │   │       ├── span_569.json
│   │   │   │       ├── span_57.json
│   │   │   │       ├── span_570.json
│   │   │   │       ├── span_571.json
│   │   │   │       ├── span_572.json
│   │   │   │       ├── span_573.json
│   │   │   │       ├── span_574.json
│   │   │   │       ├── span_575.json
│   │   │   │       ├── span_576.json
│   │   │   │       ├── span_577.json
│   │   │   │       ├── span_578.json
│   │   │   │       ├── span_579.json
│   │   │   │       ├── span_58.json
│   │   │   │       ├── span_580.json
│   │   │   │       ├── span_581.json
│   │   │   │       ├── span_582.json
│   │   │   │       ├── span_583.json
│   │   │   │       ├── span_584.json
│   │   │   │       ├── span_585.json
│   │   │   │       ├── span_586.json
│   │   │   │       ├── span_587.json
│   │   │   │       ├── span_588.json
│   │   │   │       ├── span_589.json
│   │   │   │       ├── span_59.json
│   │   │   │       ├── span_590.json
│   │   │   │       ├── span_591.json
│   │   │   │       ├── span_592.json
│   │   │   │       ├── span_593.json
│   │   │   │       ├── span_594.json
│   │   │   │       ├── span_595.json
│   │   │   │       ├── span_596.json
│   │   │   │       ├── span_597.json
│   │   │   │       ├── span_598.json
│   │   │   │       ├── span_599.json
│   │   │   │       ├── span_6.json
│   │   │   │       ├── span_60.json
│   │   │   │       ├── span_600.json
│   │   │   │       ├── span_601.json
│   │   │   │       ├── span_602.json
│   │   │   │       ├── span_603.json
│   │   │   │       ├── span_604.json
│   │   │   │       ├── span_605.json
│   │   │   │       ├── span_606.json
│   │   │   │       ├── span_607.json
│   │   │   │       ├── span_608.json
│   │   │   │       ├── span_609.json
│   │   │   │       ├── span_61.json
│   │   │   │       ├── span_610.json
│   │   │   │       ├── span_611.json
│   │   │   │       ├── span_612.json
│   │   │   │       ├── span_613.json
│   │   │   │       ├── span_614.json
│   │   │   │       ├── span_615.json
│   │   │   │       ├── span_616.json
│   │   │   │       ├── span_617.json
│   │   │   │       ├── span_618.json
│   │   │   │       ├── span_619.json
│   │   │   │       ├── span_62.json
│   │   │   │       ├── span_620.json
│   │   │   │       ├── span_621.json
│   │   │   │       ├── span_622.json
│   │   │   │       ├── span_623.json
│   │   │   │       ├── span_624.json
│   │   │   │       ├── span_625.json
│   │   │   │       ├── span_626.json
│   │   │   │       ├── span_627.json
│   │   │   │       ├── span_628.json
│   │   │   │       ├── span_629.json
│   │   │   │       ├── span_63.json
│   │   │   │       ├── span_630.json
│   │   │   │       ├── span_631.json
│   │   │   │       ├── span_632.json
│   │   │   │       ├── span_633.json
│   │   │   │       ├── span_634.json
│   │   │   │       ├── span_635.json
│   │   │   │       ├── span_636.json
│   │   │   │       ├── span_637.json
│   │   │   │       ├── span_638.json
│   │   │   │       ├── span_639.json
│   │   │   │       ├── span_64.json
│   │   │   │       ├── span_640.json
│   │   │   │       ├── span_641.json
│   │   │   │       ├── span_642.json
│   │   │   │       ├── span_643.json
│   │   │   │       ├── span_644.json
│   │   │   │       ├── span_645.json
│   │   │   │       ├── span_646.json
│   │   │   │       ├── span_647.json
│   │   │   │       ├── span_648.json
│   │   │   │       ├── span_649.json
│   │   │   │       ├── span_65.json
│   │   │   │       ├── span_650.json
│   │   │   │       ├── span_651.json
│   │   │   │       ├── span_652.json
│   │   │   │       ├── span_653.json
│   │   │   │       ├── span_654.json
│   │   │   │       ├── span_655.json
│   │   │   │       ├── span_656.json
│   │   │   │       ├── span_657.json
│   │   │   │       ├── span_658.json
│   │   │   │       ├── span_659.json
│   │   │   │       ├── span_66.json
│   │   │   │       ├── span_660.json
│   │   │   │       ├── span_661.json
│   │   │   │       ├── span_662.json
│   │   │   │       ├── span_663.json
│   │   │   │       ├── span_664.json
│   │   │   │       ├── span_665.json
│   │   │   │       ├── span_666.json
│   │   │   │       ├── span_667.json
│   │   │   │       ├── span_668.json
│   │   │   │       ├── span_669.json
│   │   │   │       ├── span_67.json
│   │   │   │       ├── span_670.json
│   │   │   │       ├── span_671.json
│   │   │   │       ├── span_672.json
│   │   │   │       ├── span_673.json
│   │   │   │       ├── span_674.json
│   │   │   │       ├── span_675.json
│   │   │   │       ├── span_676.json
│   │   │   │       ├── span_677.json
│   │   │   │       ├── span_678.json
│   │   │   │       ├── span_679.json
│   │   │   │       ├── span_68.json
│   │   │   │       ├── span_680.json
│   │   │   │       ├── span_681.json
│   │   │   │       ├── span_682.json
│   │   │   │       ├── span_683.json
│   │   │   │       ├── span_684.json
│   │   │   │       ├── span_685.json
│   │   │   │       ├── span_686.json
│   │   │   │       ├── span_687.json
│   │   │   │       ├── span_688.json
│   │   │   │       ├── span_689.json
│   │   │   │       ├── span_69.json
│   │   │   │       ├── span_690.json
│   │   │   │       ├── span_691.json
│   │   │   │       ├── span_692.json
│   │   │   │       ├── span_693.json
│   │   │   │       ├── span_694.json
│   │   │   │       ├── span_695.json
│   │   │   │       ├── span_696.json
│   │   │   │       ├── span_697.json
│   │   │   │       ├── span_698.json
│   │   │   │       ├── span_699.json
│   │   │   │       ├── span_7.json
│   │   │   │       ├── span_70.json
│   │   │   │       ├── span_700.json
│   │   │   │       ├── span_701.json
│   │   │   │       ├── span_702.json
│   │   │   │       ├── span_703.json
│   │   │   │       ├── span_704.json
│   │   │   │       ├── span_705.json
│   │   │   │       ├── span_706.json
│   │   │   │       ├── span_707.json
│   │   │   │       ├── span_708.json
│   │   │   │       ├── span_709.json
│   │   │   │       ├── span_71.json
│   │   │   │       ├── span_710.json
│   │   │   │       ├── span_711.json
│   │   │   │       ├── span_712.json
│   │   │   │       ├── span_713.json
│   │   │   │       ├── span_714.json
│   │   │   │       ├── span_715.json
│   │   │   │       ├── span_716.json
│   │   │   │       ├── span_717.json
│   │   │   │       ├── span_718.json
│   │   │   │       ├── span_719.json
│   │   │   │       ├── span_72.json
│   │   │   │       ├── span_720.json
│   │   │   │       ├── span_721.json
│   │   │   │       ├── span_722.json
│   │   │   │       ├── span_723.json
│   │   │   │       ├── span_724.json
│   │   │   │       ├── span_725.json
│   │   │   │       ├── span_726.json
│   │   │   │       ├── span_727.json
│   │   │   │       ├── span_728.json
│   │   │   │       ├── span_729.json
│   │   │   │       ├── span_73.json
│   │   │   │       ├── span_730.json
│   │   │   │       ├── span_731.json
│   │   │   │       ├── span_732.json
│   │   │   │       ├── span_733.json
│   │   │   │       ├── span_734.json
│   │   │   │       ├── span_735.json
│   │   │   │       ├── span_736.json
│   │   │   │       ├── span_737.json
│   │   │   │       ├── span_738.json
│   │   │   │       ├── span_739.json
│   │   │   │       ├── span_74.json
│   │   │   │       ├── span_740.json
│   │   │   │       ├── span_741.json
│   │   │   │       ├── span_742.json
│   │   │   │       ├── span_743.json
│   │   │   │       ├── span_744.json
│   │   │   │       ├── span_745.json
│   │   │   │       ├── span_746.json
│   │   │   │       ├── span_747.json
│   │   │   │       ├── span_748.json
│   │   │   │       ├── span_749.json
│   │   │   │       ├── span_75.json
│   │   │   │       ├── span_750.json
│   │   │   │       ├── span_751.json
│   │   │   │       ├── span_752.json
│   │   │   │       ├── span_753.json
│   │   │   │       ├── span_754.json
│   │   │   │       ├── span_755.json
│   │   │   │       ├── span_756.json
│   │   │   │       ├── span_757.json
│   │   │   │       ├── span_758.json
│   │   │   │       ├── span_759.json
│   │   │   │       ├── span_76.json
│   │   │   │       ├── span_760.json
│   │   │   │       ├── span_761.json
│   │   │   │       ├── span_762.json
│   │   │   │       ├── span_763.json
│   │   │   │       ├── span_764.json
│   │   │   │       ├── span_765.json
│   │   │   │       ├── span_766.json
│   │   │   │       ├── span_767.json
│   │   │   │       ├── span_768.json
│   │   │   │       ├── span_769.json
│   │   │   │       ├── span_77.json
│   │   │   │       ├── span_770.json
│   │   │   │       ├── span_771.json
│   │   │   │       ├── span_772.json
│   │   │   │       ├── span_773.json
│   │   │   │       ├── span_774.json
│   │   │   │       ├── span_775.json
│   │   │   │       ├── span_776.json
│   │   │   │       ├── span_777.json
│   │   │   │       ├── span_778.json
│   │   │   │       ├── span_779.json
│   │   │   │       ├── span_78.json
│   │   │   │       ├── span_780.json
│   │   │   │       ├── span_781.json
│   │   │   │       ├── span_782.json
│   │   │   │       ├── span_783.json
│   │   │   │       ├── span_784.json
│   │   │   │       ├── span_785.json
│   │   │   │       ├── span_786.json
│   │   │   │       ├── span_787.json
│   │   │   │       ├── span_788.json
│   │   │   │       ├── span_789.json
│   │   │   │       ├── span_79.json
│   │   │   │       ├── span_790.json
│   │   │   │       ├── span_791.json
│   │   │   │       ├── span_792.json
│   │   │   │       ├── span_793.json
│   │   │   │       ├── span_794.json
│   │   │   │       ├── span_795.json
│   │   │   │       ├── span_796.json
│   │   │   │       ├── span_797.json
│   │   │   │       ├── span_798.json
│   │   │   │       ├── span_799.json
│   │   │   │       ├── span_8.json
│   │   │   │       ├── span_80.json
│   │   │   │       ├── span_800.json
│   │   │   │       ├── span_801.json
│   │   │   │       ├── span_802.json
│   │   │   │       ├── span_803.json
│   │   │   │       ├── span_804.json
│   │   │   │       ├── span_805.json
│   │   │   │       ├── span_806.json
│   │   │   │       ├── span_807.json
│   │   │   │       ├── span_808.json
│   │   │   │       ├── span_809.json
│   │   │   │       ├── span_81.json
│   │   │   │       ├── span_810.json
│   │   │   │       ├── span_811.json
│   │   │   │       ├── span_812.json
│   │   │   │       ├── span_813.json
│   │   │   │       ├── span_814.json
│   │   │   │       ├── span_815.json
│   │   │   │       ├── span_816.json
│   │   │   │       ├── span_817.json
│   │   │   │       ├── span_818.json
│   │   │   │       ├── span_819.json
│   │   │   │       ├── span_82.json
│   │   │   │       ├── span_820.json
│   │   │   │       ├── span_821.json
│   │   │   │       ├── span_822.json
│   │   │   │       ├── span_823.json
│   │   │   │       ├── span_824.json
│   │   │   │       ├── span_825.json
│   │   │   │       ├── span_826.json
│   │   │   │       ├── span_827.json
│   │   │   │       ├── span_828.json
│   │   │   │       ├── span_829.json
│   │   │   │       ├── span_83.json
│   │   │   │       ├── span_830.json
│   │   │   │       ├── span_831.json
│   │   │   │       ├── span_832.json
│   │   │   │       ├── span_833.json
│   │   │   │       ├── span_834.json
│   │   │   │       ├── span_835.json
│   │   │   │       ├── span_836.json
│   │   │   │       ├── span_837.json
│   │   │   │       ├── span_838.json
│   │   │   │       ├── span_839.json
│   │   │   │       ├── span_84.json
│   │   │   │       ├── span_840.json
│   │   │   │       ├── span_841.json
│   │   │   │       ├── span_842.json
│   │   │   │       ├── span_843.json
│   │   │   │       ├── span_844.json
│   │   │   │       ├── span_845.json
│   │   │   │       ├── span_846.json
│   │   │   │       ├── span_847.json
│   │   │   │       ├── span_848.json
│   │   │   │       ├── span_849.json
│   │   │   │       ├── span_85.json
│   │   │   │       ├── span_850.json
│   │   │   │       ├── span_851.json
│   │   │   │       ├── span_852.json
│   │   │   │       ├── span_853.json
│   │   │   │       ├── span_854.json
│   │   │   │       ├── span_855.json
│   │   │   │       ├── span_856.json
│   │   │   │       ├── span_857.json
│   │   │   │       ├── span_858.json
│   │   │   │       ├── span_859.json
│   │   │   │       ├── span_86.json
│   │   │   │       ├── span_860.json
│   │   │   │       ├── span_861.json
│   │   │   │       ├── span_862.json
│   │   │   │       ├── span_863.json
│   │   │   │       ├── span_864.json
│   │   │   │       ├── span_865.json
│   │   │   │       ├── span_866.json
│   │   │   │       ├── span_867.json
│   │   │   │       ├── span_868.json
│   │   │   │       ├── span_869.json
│   │   │   │       ├── span_87.json
│   │   │   │       ├── span_870.json
│   │   │   │       ├── span_871.json
│   │   │   │       ├── span_872.json
│   │   │   │       ├── span_873.json
│   │   │   │       ├── span_874.json
│   │   │   │       ├── span_875.json
│   │   │   │       ├── span_876.json
│   │   │   │       ├── span_877.json
│   │   │   │       ├── span_878.json
│   │   │   │       ├── span_879.json
│   │   │   │       ├── span_88.json
│   │   │   │       ├── span_880.json
│   │   │   │       ├── span_881.json
│   │   │   │       ├── span_882.json
│   │   │   │       ├── span_883.json
│   │   │   │       ├── span_884.json
│   │   │   │       ├── span_885.json
│   │   │   │       ├── span_886.json
│   │   │   │       ├── span_887.json
│   │   │   │       ├── span_888.json
│   │   │   │       ├── span_889.json
│   │   │   │       ├── span_89.json
│   │   │   │       ├── span_890.json
│   │   │   │       ├── span_891.json
│   │   │   │       ├── span_892.json
│   │   │   │       ├── span_893.json
│   │   │   │       ├── span_894.json
│   │   │   │       ├── span_895.json
│   │   │   │       ├── span_896.json
│   │   │   │       ├── span_897.json
│   │   │   │       ├── span_898.json
│   │   │   │       ├── span_899.json
│   │   │   │       ├── span_9.json
│   │   │   │       ├── span_90.json
│   │   │   │       ├── span_900.json
│   │   │   │       ├── span_901.json
│   │   │   │       ├── span_902.json
│   │   │   │       ├── span_903.json
│   │   │   │       ├── span_904.json
│   │   │   │       ├── span_905.json
│   │   │   │       ├── span_906.json
│   │   │   │       ├── span_907.json
│   │   │   │       ├── span_908.json
│   │   │   │       ├── span_909.json
│   │   │   │       ├── span_91.json
│   │   │   │       ├── span_910.json
│   │   │   │       ├── span_911.json
│   │   │   │       ├── span_912.json
│   │   │   │       ├── span_913.json
│   │   │   │       ├── span_914.json
│   │   │   │       ├── span_915.json
│   │   │   │       ├── span_916.json
│   │   │   │       ├── span_917.json
│   │   │   │       ├── span_918.json
│   │   │   │       ├── span_919.json
│   │   │   │       ├── span_92.json
│   │   │   │       ├── span_920.json
│   │   │   │       ├── span_921.json
│   │   │   │       ├── span_922.json
│   │   │   │       ├── span_923.json
│   │   │   │       ├── span_924.json
│   │   │   │       ├── span_925.json
│   │   │   │       ├── span_926.json
│   │   │   │       ├── span_927.json
│   │   │   │       ├── span_928.json
│   │   │   │       ├── span_929.json
│   │   │   │       ├── span_93.json
│   │   │   │       ├── span_930.json
│   │   │   │       ├── span_931.json
│   │   │   │       ├── span_932.json
│   │   │   │       ├── span_933.json
│   │   │   │       ├── span_934.json
│   │   │   │       ├── span_935.json
│   │   │   │       ├── span_936.json
│   │   │   │       ├── span_937.json
│   │   │   │       ├── span_938.json
│   │   │   │       ├── span_939.json
│   │   │   │       ├── span_94.json
│   │   │   │       ├── span_940.json
│   │   │   │       ├── span_941.json
│   │   │   │       ├── span_942.json
│   │   │   │       ├── span_943.json
│   │   │   │       ├── span_944.json
│   │   │   │       ├── span_945.json
│   │   │   │       ├── span_946.json
│   │   │   │       ├── span_947.json
│   │   │   │       ├── span_948.json
│   │   │   │       ├── span_949.json
│   │   │   │       ├── span_95.json
│   │   │   │       ├── span_950.json
│   │   │   │       ├── span_951.json
│   │   │   │       ├── span_952.json
│   │   │   │       ├── span_953.json
│   │   │   │       ├── span_954.json
│   │   │   │       ├── span_955.json
│   │   │   │       ├── span_956.json
│   │   │   │       ├── span_957.json
│   │   │   │       ├── span_958.json
│   │   │   │       ├── span_959.json
│   │   │   │       ├── span_96.json
│   │   │   │       ├── span_960.json
│   │   │   │       ├── span_961.json
│   │   │   │       ├── span_962.json
│   │   │   │       ├── span_963.json
│   │   │   │       ├── span_964.json
│   │   │   │       ├── span_965.json
│   │   │   │       ├── span_966.json
│   │   │   │       ├── span_967.json
│   │   │   │       ├── span_968.json
│   │   │   │       ├── span_969.json
│   │   │   │       ├── span_97.json
│   │   │   │       ├── span_970.json
│   │   │   │       ├── span_971.json
│   │   │   │       ├── span_972.json
│   │   │   │       ├── span_973.json
│   │   │   │       ├── span_974.json
│   │   │   │       ├── span_975.json
│   │   │   │       ├── span_976.json
│   │   │   │       ├── span_977.json
│   │   │   │       ├── span_978.json
│   │   │   │       ├── span_979.json
│   │   │   │       ├── span_98.json
│   │   │   │       ├── span_980.json
│   │   │   │       ├── span_981.json
│   │   │   │       ├── span_982.json
│   │   │   │       ├── span_983.json
│   │   │   │       ├── span_984.json
│   │   │   │       ├── span_985.json
│   │   │   │       ├── span_986.json
│   │   │   │       ├── span_987.json
│   │   │   │       ├── span_988.json
│   │   │   │       ├── span_989.json
│   │   │   │       ├── span_99.json
│   │   │   │       ├── span_990.json
│   │   │   │       ├── span_991.json
│   │   │   │       ├── span_992.json
│   │   │   │       ├── span_993.json
│   │   │   │       ├── span_994.json
│   │   │   │       ├── span_995.json
│   │   │   │       ├── span_996.json
│   │   │   │       ├── span_997.json
│   │   │   │       ├── span_998.json
│   │   │   │       └── span_999.json
│   │   │   └── mainnet/
│   │   │       ├── checkpoints/
│   │   │       │   └── checkpoint_1.json
│   │   │       ├── getSnapshotProposerSequence/
│   │   │       │   ├── blockNum_1.json
│   │   │       │   ├── blockNum_10000000.json
│   │   │       │   ├── blockNum_12000000.json
│   │   │       │   ├── blockNum_13000000.json
│   │   │       │   ├── blockNum_14000000.json
│   │   │       │   ├── blockNum_14250000.json
│   │   │       │   ├── blockNum_14300000.json
│   │   │       │   ├── blockNum_14323456.json
│   │   │       │   ├── blockNum_14323520.json
│   │   │       │   ├── blockNum_14323584.json
│   │   │       │   ├── blockNum_14325000.json
│   │   │       │   ├── blockNum_14329854.json
│   │   │       │   ├── blockNum_14329855.json
│   │   │       │   ├── blockNum_14329856.json
│   │   │       │   ├── blockNum_14337500.json
│   │   │       │   ├── blockNum_14350000.json
│   │   │       │   ├── blockNum_14375000.json
│   │   │       │   ├── blockNum_14500000.json
│   │   │       │   ├── blockNum_15000000.json
│   │   │       │   ├── blockNum_16.json
│   │   │       │   ├── blockNum_255.json
│   │   │       │   ├── blockNum_256.json
│   │   │       │   ├── blockNum_7000.json
│   │   │       │   ├── blockNum_8173056.json
│   │   │       │   └── blockNum_8192255.json
│   │   │       ├── milestones/
│   │   │       │   └── milestone_453496.json
│   │   │       └── spans/
│   │   │           ├── span_0.json
│   │   │           ├── span_1.json
│   │   │           ├── span_10.json
│   │   │           ├── span_100.json
│   │   │           ├── span_1000.json
│   │   │           ├── span_1001.json
│   │   │           ├── span_1002.json
│   │   │           ├── span_1003.json
│   │   │           ├── span_1004.json
│   │   │           ├── span_1005.json
│   │   │           ├── span_1006.json
│   │   │           ├── span_1007.json
│   │   │           ├── span_1008.json
│   │   │           ├── span_1009.json
│   │   │           ├── span_101.json
│   │   │           ├── span_1010.json
│   │   │           ├── span_1011.json
│   │   │           ├── span_1012.json
│   │   │           ├── span_1013.json
│   │   │           ├── span_1014.json
│   │   │           ├── span_1015.json
│   │   │           ├── span_1016.json
│   │   │           ├── span_1017.json
│   │   │           ├── span_1018.json
│   │   │           ├── span_1019.json
│   │   │           ├── span_102.json
│   │   │           ├── span_1020.json
│   │   │           ├── span_1021.json
│   │   │           ├── span_1022.json
│   │   │           ├── span_1023.json
│   │   │           ├── span_1024.json
│   │   │           ├── span_1025.json
│   │   │           ├── span_1026.json
│   │   │           ├── span_1027.json
│   │   │           ├── span_1028.json
│   │   │           ├── span_1029.json
│   │   │           ├── span_103.json
│   │   │           ├── span_1030.json
│   │   │           ├── span_1031.json
│   │   │           ├── span_1032.json
│   │   │           ├── span_1033.json
│   │   │           ├── span_1034.json
│   │   │           ├── span_1035.json
│   │   │           ├── span_1036.json
│   │   │           ├── span_1037.json
│   │   │           ├── span_1038.json
│   │   │           ├── span_1039.json
│   │   │           ├── span_104.json
│   │   │           ├── span_1040.json
│   │   │           ├── span_1041.json
│   │   │           ├── span_1042.json
│   │   │           ├── span_1043.json
│   │   │           ├── span_1044.json
│   │   │           ├── span_1045.json
│   │   │           ├── span_1046.json
│   │   │           ├── span_1047.json
│   │   │           ├── span_1048.json
│   │   │           ├── span_1049.json
│   │   │           ├── span_105.json
│   │   │           ├── span_1050.json
│   │   │           ├── span_1051.json
│   │   │           ├── span_1052.json
│   │   │           ├── span_1053.json
│   │   │           ├── span_1054.json
│   │   │           ├── span_1055.json
│   │   │           ├── span_1056.json
│   │   │           ├── span_1057.json
│   │   │           ├── span_1058.json
│   │   │           ├── span_1059.json
│   │   │           ├── span_106.json
│   │   │           ├── span_1060.json
│   │   │           ├── span_1061.json
│   │   │           ├── span_1062.json
│   │   │           ├── span_1063.json
│   │   │           ├── span_1064.json
│   │   │           ├── span_1065.json
│   │   │           ├── span_1066.json
│   │   │           ├── span_1067.json
│   │   │           ├── span_1068.json
│   │   │           ├── span_1069.json
│   │   │           ├── span_107.json
│   │   │           ├── span_1070.json
│   │   │           ├── span_1071.json
│   │   │           ├── span_1072.json
│   │   │           ├── span_1073.json
│   │   │           ├── span_1074.json
│   │   │           ├── span_1075.json
│   │   │           ├── span_1076.json
│   │   │           ├── span_1077.json
│   │   │           ├── span_1078.json
│   │   │           ├── span_1079.json
│   │   │           ├── span_108.json
│   │   │           ├── span_1080.json
│   │   │           ├── span_1081.json
│   │   │           ├── span_1082.json
│   │   │           ├── span_1083.json
│   │   │           ├── span_1084.json
│   │   │           ├── span_1085.json
│   │   │           ├── span_1086.json
│   │   │           ├── span_1087.json
│   │   │           ├── span_1088.json
│   │   │           ├── span_1089.json
│   │   │           ├── span_109.json
│   │   │           ├── span_1090.json
│   │   │           ├── span_1091.json
│   │   │           ├── span_1092.json
│   │   │           ├── span_1093.json
│   │   │           ├── span_1094.json
│   │   │           ├── span_1095.json
│   │   │           ├── span_1096.json
│   │   │           ├── span_1097.json
│   │   │           ├── span_1098.json
│   │   │           ├── span_1099.json
│   │   │           ├── span_11.json
│   │   │           ├── span_110.json
│   │   │           ├── span_1100.json
│   │   │           ├── span_1101.json
│   │   │           ├── span_1102.json
│   │   │           ├── span_1103.json
│   │   │           ├── span_1104.json
│   │   │           ├── span_1105.json
│   │   │           ├── span_1106.json
│   │   │           ├── span_1107.json
│   │   │           ├── span_1108.json
│   │   │           ├── span_1109.json
│   │   │           ├── span_111.json
│   │   │           ├── span_1110.json
│   │   │           ├── span_1111.json
│   │   │           ├── span_1112.json
│   │   │           ├── span_1113.json
│   │   │           ├── span_1114.json
│   │   │           ├── span_1115.json
│   │   │           ├── span_1116.json
│   │   │           ├── span_1117.json
│   │   │           ├── span_1118.json
│   │   │           ├── span_1119.json
│   │   │           ├── span_112.json
│   │   │           ├── span_1120.json
│   │   │           ├── span_1121.json
│   │   │           ├── span_1122.json
│   │   │           ├── span_1123.json
│   │   │           ├── span_1124.json
│   │   │           ├── span_1125.json
│   │   │           ├── span_1126.json
│   │   │           ├── span_1127.json
│   │   │           ├── span_1128.json
│   │   │           ├── span_1129.json
│   │   │           ├── span_113.json
│   │   │           ├── span_1130.json
│   │   │           ├── span_1131.json
│   │   │           ├── span_1132.json
│   │   │           ├── span_1133.json
│   │   │           ├── span_1134.json
│   │   │           ├── span_1135.json
│   │   │           ├── span_1136.json
│   │   │           ├── span_1137.json
│   │   │           ├── span_1138.json
│   │   │           ├── span_1139.json
│   │   │           ├── span_114.json
│   │   │           ├── span_1140.json
│   │   │           ├── span_1141.json
│   │   │           ├── span_1142.json
│   │   │           ├── span_1143.json
│   │   │           ├── span_1144.json
│   │   │           ├── span_1145.json
│   │   │           ├── span_1146.json
│   │   │           ├── span_1147.json
│   │   │           ├── span_1148.json
│   │   │           ├── span_1149.json
│   │   │           ├── span_115.json
│   │   │           ├── span_1150.json
│   │   │           ├── span_1151.json
│   │   │           ├── span_1152.json
│   │   │           ├── span_1153.json
│   │   │           ├── span_1154.json
│   │   │           ├── span_1155.json
│   │   │           ├── span_1156.json
│   │   │           ├── span_1157.json
│   │   │           ├── span_1158.json
│   │   │           ├── span_1159.json
│   │   │           ├── span_116.json
│   │   │           ├── span_1160.json
│   │   │           ├── span_1161.json
│   │   │           ├── span_1162.json
│   │   │           ├── span_1163.json
│   │   │           ├── span_1164.json
│   │   │           ├── span_1165.json
│   │   │           ├── span_1166.json
│   │   │           ├── span_1167.json
│   │   │           ├── span_1168.json
│   │   │           ├── span_1169.json
│   │   │           ├── span_117.json
│   │   │           ├── span_1170.json
│   │   │           ├── span_1171.json
│   │   │           ├── span_1172.json
│   │   │           ├── span_1173.json
│   │   │           ├── span_1174.json
│   │   │           ├── span_1175.json
│   │   │           ├── span_1176.json
│   │   │           ├── span_1177.json
│   │   │           ├── span_1178.json
│   │   │           ├── span_1179.json
│   │   │           ├── span_118.json
│   │   │           ├── span_1180.json
│   │   │           ├── span_1181.json
│   │   │           ├── span_1182.json
│   │   │           ├── span_1183.json
│   │   │           ├── span_1184.json
│   │   │           ├── span_1185.json
│   │   │           ├── span_1186.json
│   │   │           ├── span_1187.json
│   │   │           ├── span_1188.json
│   │   │           ├── span_1189.json
│   │   │           ├── span_119.json
│   │   │           ├── span_1190.json
│   │   │           ├── span_1191.json
│   │   │           ├── span_1192.json
│   │   │           ├── span_1193.json
│   │   │           ├── span_1194.json
│   │   │           ├── span_1195.json
│   │   │           ├── span_1196.json
│   │   │           ├── span_1197.json
│   │   │           ├── span_1198.json
│   │   │           ├── span_1199.json
│   │   │           ├── span_12.json
│   │   │           ├── span_120.json
│   │   │           ├── span_1200.json
│   │   │           ├── span_1201.json
│   │   │           ├── span_1202.json
│   │   │           ├── span_1203.json
│   │   │           ├── span_1204.json
│   │   │           ├── span_1205.json
│   │   │           ├── span_1206.json
│   │   │           ├── span_1207.json
│   │   │           ├── span_1208.json
│   │   │           ├── span_1209.json
│   │   │           ├── span_121.json
│   │   │           ├── span_1210.json
│   │   │           ├── span_1211.json
│   │   │           ├── span_1212.json
│   │   │           ├── span_1213.json
│   │   │           ├── span_1214.json
│   │   │           ├── span_1215.json
│   │   │           ├── span_1216.json
│   │   │           ├── span_1217.json
│   │   │           ├── span_1218.json
│   │   │           ├── span_1219.json
│   │   │           ├── span_122.json
│   │   │           ├── span_1220.json
│   │   │           ├── span_1221.json
│   │   │           ├── span_1222.json
│   │   │           ├── span_1223.json
│   │   │           ├── span_1224.json
│   │   │           ├── span_1225.json
│   │   │           ├── span_1226.json
│   │   │           ├── span_1227.json
│   │   │           ├── span_1228.json
│   │   │           ├── span_1229.json
│   │   │           ├── span_123.json
│   │   │           ├── span_1230.json
│   │   │           ├── span_1231.json
│   │   │           ├── span_1232.json
│   │   │           ├── span_1233.json
│   │   │           ├── span_1234.json
│   │   │           ├── span_1235.json
│   │   │           ├── span_1236.json
│   │   │           ├── span_1237.json
│   │   │           ├── span_1238.json
│   │   │           ├── span_1239.json
│   │   │           ├── span_124.json
│   │   │           ├── span_1240.json
│   │   │           ├── span_1241.json
│   │   │           ├── span_1242.json
│   │   │           ├── span_1243.json
│   │   │           ├── span_1244.json
│   │   │           ├── span_1245.json
│   │   │           ├── span_1246.json
│   │   │           ├── span_1247.json
│   │   │           ├── span_1248.json
│   │   │           ├── span_1249.json
│   │   │           ├── span_125.json
│   │   │           ├── span_1250.json
│   │   │           ├── span_1251.json
│   │   │           ├── span_1252.json
│   │   │           ├── span_1253.json
│   │   │           ├── span_1254.json
│   │   │           ├── span_1255.json
│   │   │           ├── span_1256.json
│   │   │           ├── span_1257.json
│   │   │           ├── span_1258.json
│   │   │           ├── span_1259.json
│   │   │           ├── span_126.json
│   │   │           ├── span_1260.json
│   │   │           ├── span_1261.json
│   │   │           ├── span_1262.json
│   │   │           ├── span_1263.json
│   │   │           ├── span_1264.json
│   │   │           ├── span_1265.json
│   │   │           ├── span_1266.json
│   │   │           ├── span_1267.json
│   │   │           ├── span_1268.json
│   │   │           ├── span_1269.json
│   │   │           ├── span_127.json
│   │   │           ├── span_1270.json
│   │   │           ├── span_1271.json
│   │   │           ├── span_1272.json
│   │   │           ├── span_1273.json
│   │   │           ├── span_1274.json
│   │   │           ├── span_1275.json
│   │   │           ├── span_1276.json
│   │   │           ├── span_1277.json
│   │   │           ├── span_1278.json
│   │   │           ├── span_1279.json
│   │   │           ├── span_128.json
│   │   │           ├── span_1280.json
│   │   │           ├── span_1281.json
│   │   │           ├── span_1282.json
│   │   │           ├── span_1283.json
│   │   │           ├── span_1284.json
│   │   │           ├── span_1285.json
│   │   │           ├── span_1286.json
│   │   │           ├── span_1287.json
│   │   │           ├── span_1288.json
│   │   │           ├── span_1289.json
│   │   │           ├── span_129.json
│   │   │           ├── span_1290.json
│   │   │           ├── span_1291.json
│   │   │           ├── span_1292.json
│   │   │           ├── span_1293.json
│   │   │           ├── span_1294.json
│   │   │           ├── span_1295.json
│   │   │           ├── span_1296.json
│   │   │           ├── span_1297.json
│   │   │           ├── span_1298.json
│   │   │           ├── span_1299.json
│   │   │           ├── span_13.json
│   │   │           ├── span_130.json
│   │   │           ├── span_1300.json
│   │   │           ├── span_1301.json
│   │   │           ├── span_1302.json
│   │   │           ├── span_1303.json
│   │   │           ├── span_1304.json
│   │   │           ├── span_1305.json
│   │   │           ├── span_1306.json
│   │   │           ├── span_1307.json
│   │   │           ├── span_1308.json
│   │   │           ├── span_1309.json
│   │   │           ├── span_131.json
│   │   │           ├── span_1310.json
│   │   │           ├── span_1311.json
│   │   │           ├── span_1312.json
│   │   │           ├── span_1313.json
│   │   │           ├── span_1314.json
│   │   │           ├── span_1315.json
│   │   │           ├── span_1316.json
│   │   │           ├── span_1317.json
│   │   │           ├── span_1318.json
│   │   │           ├── span_1319.json
│   │   │           ├── span_132.json
│   │   │           ├── span_1320.json
│   │   │           ├── span_1321.json
│   │   │           ├── span_1322.json
│   │   │           ├── span_1323.json
│   │   │           ├── span_1324.json
│   │   │           ├── span_1325.json
│   │   │           ├── span_1326.json
│   │   │           ├── span_1327.json
│   │   │           ├── span_1328.json
│   │   │           ├── span_1329.json
│   │   │           ├── span_133.json
│   │   │           ├── span_1330.json
│   │   │           ├── span_1331.json
│   │   │           ├── span_1332.json
│   │   │           ├── span_1333.json
│   │   │           ├── span_1334.json
│   │   │           ├── span_1335.json
│   │   │           ├── span_1336.json
│   │   │           ├── span_1337.json
│   │   │           ├── span_1338.json
│   │   │           ├── span_1339.json
│   │   │           ├── span_134.json
│   │   │           ├── span_1340.json
│   │   │           ├── span_1341.json
│   │   │           ├── span_1342.json
│   │   │           ├── span_1343.json
│   │   │           ├── span_1344.json
│   │   │           ├── span_1345.json
│   │   │           ├── span_1346.json
│   │   │           ├── span_1347.json
│   │   │           ├── span_1348.json
│   │   │           ├── span_1349.json
│   │   │           ├── span_135.json
│   │   │           ├── span_1350.json
│   │   │           ├── span_1351.json
│   │   │           ├── span_1352.json
│   │   │           ├── span_1353.json
│   │   │           ├── span_1354.json
│   │   │           ├── span_1355.json
│   │   │           ├── span_1356.json
│   │   │           ├── span_1357.json
│   │   │           ├── span_1358.json
│   │   │           ├── span_1359.json
│   │   │           ├── span_136.json
│   │   │           ├── span_1360.json
│   │   │           ├── span_1361.json
│   │   │           ├── span_1362.json
│   │   │           ├── span_1363.json
│   │   │           ├── span_1364.json
│   │   │           ├── span_1365.json
│   │   │           ├── span_1366.json
│   │   │           ├── span_1367.json
│   │   │           ├── span_1368.json
│   │   │           ├── span_1369.json
│   │   │           ├── span_137.json
│   │   │           ├── span_1370.json
│   │   │           ├── span_1371.json
│   │   │           ├── span_1372.json
│   │   │           ├── span_1373.json
│   │   │           ├── span_1374.json
│   │   │           ├── span_1375.json
│   │   │           ├── span_1376.json
│   │   │           ├── span_1377.json
│   │   │           ├── span_1378.json
│   │   │           ├── span_1379.json
│   │   │           ├── span_138.json
│   │   │           ├── span_1380.json
│   │   │           ├── span_1381.json
│   │   │           ├── span_1382.json
│   │   │           ├── span_1383.json
│   │   │           ├── span_1384.json
│   │   │           ├── span_1385.json
│   │   │           ├── span_1386.json
│   │   │           ├── span_1387.json
│   │   │           ├── span_1388.json
│   │   │           ├── span_1389.json
│   │   │           ├── span_139.json
│   │   │           ├── span_1390.json
│   │   │           ├── span_1391.json
│   │   │           ├── span_1392.json
│   │   │           ├── span_1393.json
│   │   │           ├── span_1394.json
│   │   │           ├── span_1395.json
│   │   │           ├── span_1396.json
│   │   │           ├── span_1397.json
│   │   │           ├── span_1398.json
│   │   │           ├── span_1399.json
│   │   │           ├── span_14.json
│   │   │           ├── span_140.json
│   │   │           ├── span_1400.json
│   │   │           ├── span_1401.json
│   │   │           ├── span_1402.json
│   │   │           ├── span_1403.json
│   │   │           ├── span_1404.json
│   │   │           ├── span_1405.json
│   │   │           ├── span_1406.json
│   │   │           ├── span_1407.json
│   │   │           ├── span_1408.json
│   │   │           ├── span_1409.json
│   │   │           ├── span_141.json
│   │   │           ├── span_1410.json
│   │   │           ├── span_1411.json
│   │   │           ├── span_1412.json
│   │   │           ├── span_1413.json
│   │   │           ├── span_1414.json
│   │   │           ├── span_1415.json
│   │   │           ├── span_1416.json
│   │   │           ├── span_1417.json
│   │   │           ├── span_1418.json
│   │   │           ├── span_1419.json
│   │   │           ├── span_142.json
│   │   │           ├── span_1420.json
│   │   │           ├── span_1421.json
│   │   │           ├── span_1422.json
│   │   │           ├── span_1423.json
│   │   │           ├── span_1424.json
│   │   │           ├── span_1425.json
│   │   │           ├── span_1426.json
│   │   │           ├── span_1427.json
│   │   │           ├── span_1428.json
│   │   │           ├── span_1429.json
│   │   │           ├── span_143.json
│   │   │           ├── span_1430.json
│   │   │           ├── span_1431.json
│   │   │           ├── span_1432.json
│   │   │           ├── span_1433.json
│   │   │           ├── span_1434.json
│   │   │           ├── span_1435.json
│   │   │           ├── span_1436.json
│   │   │           ├── span_1437.json
│   │   │           ├── span_1438.json
│   │   │           ├── span_1439.json
│   │   │           ├── span_144.json
│   │   │           ├── span_1440.json
│   │   │           ├── span_1441.json
│   │   │           ├── span_1442.json
│   │   │           ├── span_1443.json
│   │   │           ├── span_1444.json
│   │   │           ├── span_1445.json
│   │   │           ├── span_1446.json
│   │   │           ├── span_1447.json
│   │   │           ├── span_1448.json
│   │   │           ├── span_1449.json
│   │   │           ├── span_145.json
│   │   │           ├── span_1450.json
│   │   │           ├── span_1451.json
│   │   │           ├── span_1452.json
│   │   │           ├── span_1453.json
│   │   │           ├── span_1454.json
│   │   │           ├── span_1455.json
│   │   │           ├── span_1456.json
│   │   │           ├── span_1457.json
│   │   │           ├── span_1458.json
│   │   │           ├── span_1459.json
│   │   │           ├── span_146.json
│   │   │           ├── span_1460.json
│   │   │           ├── span_1461.json
│   │   │           ├── span_1462.json
│   │   │           ├── span_1463.json
│   │   │           ├── span_1464.json
│   │   │           ├── span_1465.json
│   │   │           ├── span_1466.json
│   │   │           ├── span_1467.json
│   │   │           ├── span_1468.json
│   │   │           ├── span_1469.json
│   │   │           ├── span_147.json
│   │   │           ├── span_1470.json
│   │   │           ├── span_1471.json
│   │   │           ├── span_1472.json
│   │   │           ├── span_1473.json
│   │   │           ├── span_1474.json
│   │   │           ├── span_1475.json
│   │   │           ├── span_1476.json
│   │   │           ├── span_1477.json
│   │   │           ├── span_1478.json
│   │   │           ├── span_1479.json
│   │   │           ├── span_148.json
│   │   │           ├── span_1480.json
│   │   │           ├── span_1481.json
│   │   │           ├── span_1482.json
│   │   │           ├── span_1483.json
│   │   │           ├── span_1484.json
│   │   │           ├── span_1485.json
│   │   │           ├── span_1486.json
│   │   │           ├── span_1487.json
│   │   │           ├── span_1488.json
│   │   │           ├── span_1489.json
│   │   │           ├── span_149.json
│   │   │           ├── span_1490.json
│   │   │           ├── span_1491.json
│   │   │           ├── span_1492.json
│   │   │           ├── span_1493.json
│   │   │           ├── span_1494.json
│   │   │           ├── span_1495.json
│   │   │           ├── span_1496.json
│   │   │           ├── span_1497.json
│   │   │           ├── span_1498.json
│   │   │           ├── span_1499.json
│   │   │           ├── span_15.json
│   │   │           ├── span_150.json
│   │   │           ├── span_1500.json
│   │   │           ├── span_1501.json
│   │   │           ├── span_1502.json
│   │   │           ├── span_1503.json
│   │   │           ├── span_1504.json
│   │   │           ├── span_1505.json
│   │   │           ├── span_1506.json
│   │   │           ├── span_1507.json
│   │   │           ├── span_1508.json
│   │   │           ├── span_1509.json
│   │   │           ├── span_151.json
│   │   │           ├── span_1510.json
│   │   │           ├── span_1511.json
│   │   │           ├── span_1512.json
│   │   │           ├── span_1513.json
│   │   │           ├── span_1514.json
│   │   │           ├── span_1515.json
│   │   │           ├── span_1516.json
│   │   │           ├── span_1517.json
│   │   │           ├── span_1518.json
│   │   │           ├── span_1519.json
│   │   │           ├── span_152.json
│   │   │           ├── span_1520.json
│   │   │           ├── span_1521.json
│   │   │           ├── span_1522.json
│   │   │           ├── span_1523.json
│   │   │           ├── span_1524.json
│   │   │           ├── span_1525.json
│   │   │           ├── span_1526.json
│   │   │           ├── span_1527.json
│   │   │           ├── span_1528.json
│   │   │           ├── span_1529.json
│   │   │           ├── span_153.json
│   │   │           ├── span_1530.json
│   │   │           ├── span_1531.json
│   │   │           ├── span_1532.json
│   │   │           ├── span_1533.json
│   │   │           ├── span_1534.json
│   │   │           ├── span_1535.json
│   │   │           ├── span_1536.json
│   │   │           ├── span_1537.json
│   │   │           ├── span_1538.json
│   │   │           ├── span_1539.json
│   │   │           ├── span_154.json
│   │   │           ├── span_1540.json
│   │   │           ├── span_1541.json
│   │   │           ├── span_1542.json
│   │   │           ├── span_1543.json
│   │   │           ├── span_1544.json
│   │   │           ├── span_1545.json
│   │   │           ├── span_1546.json
│   │   │           ├── span_1547.json
│   │   │           ├── span_1548.json
│   │   │           ├── span_1549.json
│   │   │           ├── span_155.json
│   │   │           ├── span_1550.json
│   │   │           ├── span_1551.json
│   │   │           ├── span_1552.json
│   │   │           ├── span_1553.json
│   │   │           ├── span_1554.json
│   │   │           ├── span_1555.json
│   │   │           ├── span_1556.json
│   │   │           ├── span_1557.json
│   │   │           ├── span_1558.json
│   │   │           ├── span_1559.json
│   │   │           ├── span_156.json
│   │   │           ├── span_1560.json
│   │   │           ├── span_1561.json
│   │   │           ├── span_1562.json
│   │   │           ├── span_1563.json
│   │   │           ├── span_1564.json
│   │   │           ├── span_1565.json
│   │   │           ├── span_1566.json
│   │   │           ├── span_1567.json
│   │   │           ├── span_1568.json
│   │   │           ├── span_1569.json
│   │   │           ├── span_157.json
│   │   │           ├── span_1570.json
│   │   │           ├── span_1571.json
│   │   │           ├── span_1572.json
│   │   │           ├── span_1573.json
│   │   │           ├── span_1574.json
│   │   │           ├── span_1575.json
│   │   │           ├── span_1576.json
│   │   │           ├── span_1577.json
│   │   │           ├── span_1578.json
│   │   │           ├── span_1579.json
│   │   │           ├── span_158.json
│   │   │           ├── span_1580.json
│   │   │           ├── span_1581.json
│   │   │           ├── span_1582.json
│   │   │           ├── span_1583.json
│   │   │           ├── span_1584.json
│   │   │           ├── span_1585.json
│   │   │           ├── span_1586.json
│   │   │           ├── span_1587.json
│   │   │           ├── span_1588.json
│   │   │           ├── span_1589.json
│   │   │           ├── span_159.json
│   │   │           ├── span_1590.json
│   │   │           ├── span_1591.json
│   │   │           ├── span_1592.json
│   │   │           ├── span_1593.json
│   │   │           ├── span_1594.json
│   │   │           ├── span_1595.json
│   │   │           ├── span_1596.json
│   │   │           ├── span_1597.json
│   │   │           ├── span_1598.json
│   │   │           ├── span_1599.json
│   │   │           ├── span_16.json
│   │   │           ├── span_160.json
│   │   │           ├── span_1600.json
│   │   │           ├── span_1601.json
│   │   │           ├── span_1602.json
│   │   │           ├── span_1603.json
│   │   │           ├── span_1604.json
│   │   │           ├── span_1605.json
│   │   │           ├── span_1606.json
│   │   │           ├── span_1607.json
│   │   │           ├── span_1608.json
│   │   │           ├── span_1609.json
│   │   │           ├── span_161.json
│   │   │           ├── span_1610.json
│   │   │           ├── span_1611.json
│   │   │           ├── span_1612.json
│   │   │           ├── span_1613.json
│   │   │           ├── span_1614.json
│   │   │           ├── span_1615.json
│   │   │           ├── span_1616.json
│   │   │           ├── span_1617.json
│   │   │           ├── span_1618.json
│   │   │           ├── span_1619.json
│   │   │           ├── span_162.json
│   │   │           ├── span_1620.json
│   │   │           ├── span_1621.json
│   │   │           ├── span_1622.json
│   │   │           ├── span_1623.json
│   │   │           ├── span_1624.json
│   │   │           ├── span_1625.json
│   │   │           ├── span_1626.json
│   │   │           ├── span_1627.json
│   │   │           ├── span_1628.json
│   │   │           ├── span_1629.json
│   │   │           ├── span_163.json
│   │   │           ├── span_1630.json
│   │   │           ├── span_1631.json
│   │   │           ├── span_1632.json
│   │   │           ├── span_1633.json
│   │   │           ├── span_1634.json
│   │   │           ├── span_1635.json
│   │   │           ├── span_1636.json
│   │   │           ├── span_1637.json
│   │   │           ├── span_1638.json
│   │   │           ├── span_1639.json
│   │   │           ├── span_164.json
│   │   │           ├── span_1640.json
│   │   │           ├── span_1641.json
│   │   │           ├── span_1642.json
│   │   │           ├── span_1643.json
│   │   │           ├── span_1644.json
│   │   │           ├── span_1645.json
│   │   │           ├── span_1646.json
│   │   │           ├── span_1647.json
│   │   │           ├── span_1648.json
│   │   │           ├── span_1649.json
│   │   │           ├── span_165.json
│   │   │           ├── span_1650.json
│   │   │           ├── span_1651.json
│   │   │           ├── span_1652.json
│   │   │           ├── span_1653.json
│   │   │           ├── span_1654.json
│   │   │           ├── span_1655.json
│   │   │           ├── span_1656.json
│   │   │           ├── span_1657.json
│   │   │           ├── span_1658.json
│   │   │           ├── span_1659.json
│   │   │           ├── span_166.json
│   │   │           ├── span_1660.json
│   │   │           ├── span_1661.json
│   │   │           ├── span_1662.json
│   │   │           ├── span_1663.json
│   │   │           ├── span_1664.json
│   │   │           ├── span_1665.json
│   │   │           ├── span_1666.json
│   │   │           ├── span_1667.json
│   │   │           ├── span_1668.json
│   │   │           ├── span_1669.json
│   │   │           ├── span_167.json
│   │   │           ├── span_1670.json
│   │   │           ├── span_1671.json
│   │   │           ├── span_1672.json
│   │   │           ├── span_1673.json
│   │   │           ├── span_1674.json
│   │   │           ├── span_1675.json
│   │   │           ├── span_1676.json
│   │   │           ├── span_1677.json
│   │   │           ├── span_1678.json
│   │   │           ├── span_1679.json
│   │   │           ├── span_168.json
│   │   │           ├── span_1680.json
│   │   │           ├── span_1681.json
│   │   │           ├── span_1682.json
│   │   │           ├── span_1683.json
│   │   │           ├── span_1684.json
│   │   │           ├── span_1685.json
│   │   │           ├── span_1686.json
│   │   │           ├── span_1687.json
│   │   │           ├── span_1688.json
│   │   │           ├── span_1689.json
│   │   │           ├── span_169.json
│   │   │           ├── span_1690.json
│   │   │           ├── span_1691.json
│   │   │           ├── span_1692.json
│   │   │           ├── span_1693.json
│   │   │           ├── span_1694.json
│   │   │           ├── span_1695.json
│   │   │           ├── span_1696.json
│   │   │           ├── span_1697.json
│   │   │           ├── span_1698.json
│   │   │           ├── span_1699.json
│   │   │           ├── span_17.json
│   │   │           ├── span_170.json
│   │   │           ├── span_1700.json
│   │   │           ├── span_1701.json
│   │   │           ├── span_1702.json
│   │   │           ├── span_1703.json
│   │   │           ├── span_1704.json
│   │   │           ├── span_1705.json
│   │   │           ├── span_1706.json
│   │   │           ├── span_1707.json
│   │   │           ├── span_1708.json
│   │   │           ├── span_1709.json
│   │   │           ├── span_171.json
│   │   │           ├── span_1710.json
│   │   │           ├── span_1711.json
│   │   │           ├── span_1712.json
│   │   │           ├── span_1713.json
│   │   │           ├── span_1714.json
│   │   │           ├── span_1715.json
│   │   │           ├── span_1716.json
│   │   │           ├── span_1717.json
│   │   │           ├── span_1718.json
│   │   │           ├── span_1719.json
│   │   │           ├── span_172.json
│   │   │           ├── span_1720.json
│   │   │           ├── span_1721.json
│   │   │           ├── span_1722.json
│   │   │           ├── span_1723.json
│   │   │           ├── span_1724.json
│   │   │           ├── span_1725.json
│   │   │           ├── span_1726.json
│   │   │           ├── span_1727.json
│   │   │           ├── span_1728.json
│   │   │           ├── span_1729.json
│   │   │           ├── span_173.json
│   │   │           ├── span_1730.json
│   │   │           ├── span_1731.json
│   │   │           ├── span_1732.json
│   │   │           ├── span_1733.json
│   │   │           ├── span_1734.json
│   │   │           ├── span_1735.json
│   │   │           ├── span_1736.json
│   │   │           ├── span_1737.json
│   │   │           ├── span_1738.json
│   │   │           ├── span_1739.json
│   │   │           ├── span_174.json
│   │   │           ├── span_1740.json
│   │   │           ├── span_1741.json
│   │   │           ├── span_1742.json
│   │   │           ├── span_1743.json
│   │   │           ├── span_1744.json
│   │   │           ├── span_1745.json
│   │   │           ├── span_1746.json
│   │   │           ├── span_1747.json
│   │   │           ├── span_1748.json
│   │   │           ├── span_1749.json
│   │   │           ├── span_175.json
│   │   │           ├── span_1750.json
│   │   │           ├── span_1751.json
│   │   │           ├── span_1752.json
│   │   │           ├── span_1753.json
│   │   │           ├── span_1754.json
│   │   │           ├── span_1755.json
│   │   │           ├── span_1756.json
│   │   │           ├── span_1757.json
│   │   │           ├── span_1758.json
│   │   │           ├── span_1759.json
│   │   │           ├── span_176.json
│   │   │           ├── span_1760.json
│   │   │           ├── span_1761.json
│   │   │           ├── span_1762.json
│   │   │           ├── span_1763.json
│   │   │           ├── span_1764.json
│   │   │           ├── span_1765.json
│   │   │           ├── span_1766.json
│   │   │           ├── span_1767.json
│   │   │           ├── span_1768.json
│   │   │           ├── span_1769.json
│   │   │           ├── span_177.json
│   │   │           ├── span_1770.json
│   │   │           ├── span_1771.json
│   │   │           ├── span_1772.json
│   │   │           ├── span_1773.json
│   │   │           ├── span_1774.json
│   │   │           ├── span_1775.json
│   │   │           ├── span_1776.json
│   │   │           ├── span_1777.json
│   │   │           ├── span_1778.json
│   │   │           ├── span_1779.json
│   │   │           ├── span_178.json
│   │   │           ├── span_1780.json
│   │   │           ├── span_1781.json
│   │   │           ├── span_1782.json
│   │   │           ├── span_1783.json
│   │   │           ├── span_1784.json
│   │   │           ├── span_1785.json
│   │   │           ├── span_1786.json
│   │   │           ├── span_1787.json
│   │   │           ├── span_1788.json
│   │   │           ├── span_1789.json
│   │   │           ├── span_179.json
│   │   │           ├── span_1790.json
│   │   │           ├── span_1791.json
│   │   │           ├── span_1792.json
│   │   │           ├── span_1793.json
│   │   │           ├── span_1794.json
│   │   │           ├── span_1795.json
│   │   │           ├── span_1796.json
│   │   │           ├── span_1797.json
│   │   │           ├── span_1798.json
│   │   │           ├── span_1799.json
│   │   │           ├── span_18.json
│   │   │           ├── span_180.json
│   │   │           ├── span_1800.json
│   │   │           ├── span_1801.json
│   │   │           ├── span_1802.json
│   │   │           ├── span_1803.json
│   │   │           ├── span_1804.json
│   │   │           ├── span_1805.json
│   │   │           ├── span_1806.json
│   │   │           ├── span_1807.json
│   │   │           ├── span_1808.json
│   │   │           ├── span_1809.json
│   │   │           ├── span_181.json
│   │   │           ├── span_1810.json
│   │   │           ├── span_1811.json
│   │   │           ├── span_1812.json
│   │   │           ├── span_1813.json
│   │   │           ├── span_1814.json
│   │   │           ├── span_1815.json
│   │   │           ├── span_1816.json
│   │   │           ├── span_1817.json
│   │   │           ├── span_1818.json
│   │   │           ├── span_1819.json
│   │   │           ├── span_182.json
│   │   │           ├── span_1820.json
│   │   │           ├── span_1821.json
│   │   │           ├── span_1822.json
│   │   │           ├── span_1823.json
│   │   │           ├── span_1824.json
│   │   │           ├── span_1825.json
│   │   │           ├── span_1826.json
│   │   │           ├── span_1827.json
│   │   │           ├── span_1828.json
│   │   │           ├── span_1829.json
│   │   │           ├── span_183.json
│   │   │           ├── span_1830.json
│   │   │           ├── span_1831.json
│   │   │           ├── span_1832.json
│   │   │           ├── span_1833.json
│   │   │           ├── span_1834.json
│   │   │           ├── span_1835.json
│   │   │           ├── span_1836.json
│   │   │           ├── span_1837.json
│   │   │           ├── span_1838.json
│   │   │           ├── span_1839.json
│   │   │           ├── span_184.json
│   │   │           ├── span_1840.json
│   │   │           ├── span_1841.json
│   │   │           ├── span_1842.json
│   │   │           ├── span_1843.json
│   │   │           ├── span_1844.json
│   │   │           ├── span_1845.json
│   │   │           ├── span_1846.json
│   │   │           ├── span_1847.json
│   │   │           ├── span_1848.json
│   │   │           ├── span_1849.json
│   │   │           ├── span_185.json
│   │   │           ├── span_1850.json
│   │   │           ├── span_1851.json
│   │   │           ├── span_1852.json
│   │   │           ├── span_1853.json
│   │   │           ├── span_1854.json
│   │   │           ├── span_1855.json
│   │   │           ├── span_1856.json
│   │   │           ├── span_1857.json
│   │   │           ├── span_1858.json
│   │   │           ├── span_1859.json
│   │   │           ├── span_186.json
│   │   │           ├── span_1860.json
│   │   │           ├── span_1861.json
│   │   │           ├── span_1862.json
│   │   │           ├── span_1863.json
│   │   │           ├── span_1864.json
│   │   │           ├── span_1865.json
Download .txt
Showing preview only (3,121K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (32784 symbols across 2223 files)

FILE: .github/workflows/scripts/test_report/generate-test-report.ts
  type SummaryRow (line 34) | type SummaryRow = (string | { data: string; header?: true })[];
  class JobResult (line 37) | class JobResult {
  class JobSummary (line 46) | class JobSummary {
  class WorkflowRunSummary (line 52) | class WorkflowRunSummary {
  function getDateStringsBetween (line 58) | function getDateStringsBetween(startDate: Date, endDate: Date): string[] {
  function mapConclusionToIcon (line 72) | function mapConclusionToIcon(conclusion: string | null, status: string |...
  function legend (line 100) | function legend() {
  function mapConclusionToIconWithTracking (line 127) | function mapConclusionToIconWithTracking(conclusion: string | null, stat...
  function mapChain (line 141) | function mapChain(chain: string | null): string {
  function cleanJobName (line 160) | function cleanJobName(jobName: string): string {
  function run (line 175) | async function run() {

FILE: cl/abstract/beacon_state.go
  type BeaconState (line 28) | type BeaconState interface
  type BeaconStateUpgradable (line 34) | type BeaconStateUpgradable interface
  type BeaconStateExtension (line 43) | type BeaconStateExtension interface
  type BeaconStateBasic (line 75) | type BeaconStateBasic interface
  type BeaconStateSSZ (line 85) | type BeaconStateSSZ interface
  type BeaconStateMutator (line 94) | type BeaconStateMutator interface
  type BeaconStateExtra (line 170) | type BeaconStateExtra interface
  type BeaconStateMinimal (line 193) | type BeaconStateMinimal interface
  type BeaconStateReader (line 239) | type BeaconStateReader interface

FILE: cl/abstract/mock_services/beacon_state_mock.go
  type MockBeaconState (line 24) | type MockBeaconState struct
    method EXPECT (line 43) | func (m *MockBeaconState) EXPECT() *MockBeaconStateMockRecorder {
    method AddCurrentEpochAtteastation (line 48) | func (m *MockBeaconState) AddCurrentEpochAtteastation(attestation *sol...
    method AddCurrentEpochParticipationFlags (line 84) | func (m *MockBeaconState) AddCurrentEpochParticipationFlags(flags clty...
    method AddEth1DataVote (line 120) | func (m *MockBeaconState) AddEth1DataVote(vote *cltypes.Eth1Data) {
    method AddHistoricalRoot (line 156) | func (m *MockBeaconState) AddHistoricalRoot(root common.Hash) {
    method AddHistoricalSummary (line 192) | func (m *MockBeaconState) AddHistoricalSummary(summary *cltypes.Histor...
    method AddInactivityScore (line 228) | func (m *MockBeaconState) AddInactivityScore(score uint64) {
    method AddPreviousEpochAttestation (line 264) | func (m *MockBeaconState) AddPreviousEpochAttestation(attestation *sol...
    method AddPreviousEpochParticipationAt (line 300) | func (m *MockBeaconState) AddPreviousEpochParticipationAt(index int, d...
    method AddPreviousEpochParticipationFlags (line 336) | func (m *MockBeaconState) AddPreviousEpochParticipationFlags(flags clt...
    method AddValidator (line 372) | func (m *MockBeaconState) AddValidator(validator solid.Validator, bala...
    method AppendPendingConsolidation (line 408) | func (m *MockBeaconState) AppendPendingConsolidation(consolidation *so...
    method AppendPendingDeposit (line 444) | func (m *MockBeaconState) AppendPendingDeposit(deposit *solid.PendingD...
    method AppendPendingPartialWithdrawal (line 480) | func (m *MockBeaconState) AppendPendingPartialWithdrawal(withdrawal *s...
    method AppendValidator (line 516) | func (m *MockBeaconState) AppendValidator(in solid.Validator) {
    method BaseReward (line 552) | func (m *MockBeaconState) BaseReward(index uint64) (uint64, error) {
    method BaseRewardPerIncrement (line 591) | func (m *MockBeaconState) BaseRewardPerIncrement() uint64 {
    method BeaconConfig (line 629) | func (m *MockBeaconState) BeaconConfig() *clparams.BeaconChainConfig {
    method BlockRoot (line 667) | func (m *MockBeaconState) BlockRoot() ([32]byte, error) {
    method BlockRoots (line 706) | func (m *MockBeaconState) BlockRoots() solid.HashVectorSSZ {
    method Clone (line 744) | func (m *MockBeaconState) Clone() clonable.Clonable {
    method CommitteeCount (line 782) | func (m *MockBeaconState) CommitteeCount(epoch uint64) uint64 {
    method ComputeCommittee (line 820) | func (m *MockBeaconState) ComputeCommittee(indicies []uint64, slot, in...
    method ComputeExitEpochAndUpdateChurn (line 859) | func (m *MockBeaconState) ComputeExitEpochAndUpdateChurn(exitBalance u...
    method ComputeNextSyncCommittee (line 897) | func (m *MockBeaconState) ComputeNextSyncCommittee() (*solid.SyncCommi...
    method CurrentEpochAttestations (line 936) | func (m *MockBeaconState) CurrentEpochAttestations() *solid.ListSSZ[*s...
    method CurrentEpochAttestationsLength (line 974) | func (m *MockBeaconState) CurrentEpochAttestationsLength() int {
    method CurrentJustifiedCheckpoint (line 1012) | func (m *MockBeaconState) CurrentJustifiedCheckpoint() solid.Checkpoint {
    method CurrentSyncCommittee (line 1050) | func (m *MockBeaconState) CurrentSyncCommittee() *solid.SyncCommittee {
    method DebugPrint (line 1088) | func (m *MockBeaconState) DebugPrint(prefix string) {
    method DecodeSSZ (line 1124) | func (m *MockBeaconState) DecodeSSZ(buf []byte, version int) error {
    method EncodeSSZ (line 1162) | func (m *MockBeaconState) EncodeSSZ(buf []byte) ([]byte, error) {
    method EncodingSizeSSZ (line 1201) | func (m *MockBeaconState) EncodingSizeSSZ() int {
    method EpochParticipation (line 1239) | func (m *MockBeaconState) EpochParticipation(currentEpoch bool) *solid...
    method EpochParticipationForValidatorIndex (line 1277) | func (m *MockBeaconState) EpochParticipationForValidatorIndex(isCurren...
    method Eth1Data (line 1315) | func (m *MockBeaconState) Eth1Data() *cltypes.Eth1Data {
    method Eth1DataVotes (line 1353) | func (m *MockBeaconState) Eth1DataVotes() *solid.ListSSZ[*cltypes.Eth1...
    method Eth1DepositIndex (line 1391) | func (m *MockBeaconState) Eth1DepositIndex() uint64 {
    method FinalizedCheckpoint (line 1429) | func (m *MockBeaconState) FinalizedCheckpoint() solid.Checkpoint {
    method ForEachBalance (line 1467) | func (m *MockBeaconState) ForEachBalance(fn func(uint64, int, int) boo...
    method ForEachSlashingSegment (line 1503) | func (m *MockBeaconState) ForEachSlashingSegment(fn func(int, uint64, ...
    method ForEachValidator (line 1539) | func (m *MockBeaconState) ForEachValidator(fn func(solid.Validator, in...
    method Fork (line 1575) | func (m *MockBeaconState) Fork() *cltypes.Fork {
    method GenesisTime (line 1613) | func (m *MockBeaconState) GenesisTime() uint64 {
    method GenesisValidatorsRoot (line 1651) | func (m *MockBeaconState) GenesisValidatorsRoot() common.Hash {
    method GetActiveValidatorsIndices (line 1689) | func (m *MockBeaconState) GetActiveValidatorsIndices(epoch uint64) []u...
    method GetAttestationParticipationFlagIndicies (line 1727) | func (m *MockBeaconState) GetAttestationParticipationFlagIndicies(data...
    method GetAttestingIndicies (line 1766) | func (m *MockBeaconState) GetAttestingIndicies(attestation *solid.Atte...
    method GetBeaconCommitee (line 1805) | func (m *MockBeaconState) GetBeaconCommitee(slot, committeeIndex uint6...
    method GetBeaconProposerIndex (line 1844) | func (m *MockBeaconState) GetBeaconProposerIndex() (uint64, error) {
    method GetBeaconProposerIndices (line 1883) | func (m *MockBeaconState) GetBeaconProposerIndices(epoch uint64) ([]ui...
    method GetBlockRootAtSlot (line 1922) | func (m *MockBeaconState) GetBlockRootAtSlot(slot uint64) (common.Hash...
    method GetConsolidationBalanceToConsume (line 1961) | func (m *MockBeaconState) GetConsolidationBalanceToConsume() uint64 {
    method GetDepositBalanceToConsume (line 1999) | func (m *MockBeaconState) GetDepositBalanceToConsume() uint64 {
    method GetDepositRequestsStartIndex (line 2037) | func (m *MockBeaconState) GetDepositRequestsStartIndex() uint64 {
    method GetDomain (line 2075) | func (m *MockBeaconState) GetDomain(domainType [4]byte, epoch uint64) ...
    method GetEarlistConsolidationEpoch (line 2114) | func (m *MockBeaconState) GetEarlistConsolidationEpoch() uint64 {
    method GetPendingConsolidations (line 2152) | func (m *MockBeaconState) GetPendingConsolidations() *solid.ListSSZ[*s...
    method GetPendingDeposits (line 2190) | func (m *MockBeaconState) GetPendingDeposits() *solid.ListSSZ[*solid.P...
    method GetPendingPartialWithdrawals (line 2228) | func (m *MockBeaconState) GetPendingPartialWithdrawals() *solid.ListSS...
    method GetProposerLookahead (line 2266) | func (m *MockBeaconState) GetProposerLookahead() solid.Uint64VectorSSZ {
    method GetRandaoMix (line 2304) | func (m *MockBeaconState) GetRandaoMix(index int) [32]byte {
    method GetRandaoMixes (line 2342) | func (m *MockBeaconState) GetRandaoMixes(epoch uint64) [32]byte {
    method GetTotalActiveBalance (line 2380) | func (m *MockBeaconState) GetTotalActiveBalance() uint64 {
    method GetValidatorActivationChurnLimit (line 2418) | func (m *MockBeaconState) GetValidatorActivationChurnLimit() uint64 {
    method GetValidatorChurnLimit (line 2456) | func (m *MockBeaconState) GetValidatorChurnLimit() uint64 {
    method HashSSZ (line 2494) | func (m *MockBeaconState) HashSSZ() ([32]byte, error) {
    method InitiateValidatorExit (line 2533) | func (m *MockBeaconState) InitiateValidatorExit(index uint64) error {
    method JustificationBits (line 2571) | func (m *MockBeaconState) JustificationBits() cltypes.JustificationBits {
    method LatestBlockHeader (line 2609) | func (m *MockBeaconState) LatestBlockHeader() cltypes.BeaconBlockHeader {
    method LatestExecutionPayloadHeader (line 2647) | func (m *MockBeaconState) LatestExecutionPayloadHeader() *cltypes.Eth1...
    method NextSyncCommittee (line 2685) | func (m *MockBeaconState) NextSyncCommittee() *solid.SyncCommittee {
    method NextWithdrawalIndex (line 2723) | func (m *MockBeaconState) NextWithdrawalIndex() uint64 {
    method NextWithdrawalValidatorIndex (line 2761) | func (m *MockBeaconState) NextWithdrawalValidatorIndex() uint64 {
    method PreviousEpochAttestations (line 2799) | func (m *MockBeaconState) PreviousEpochAttestations() *solid.ListSSZ[*...
    method PreviousEpochAttestationsLength (line 2837) | func (m *MockBeaconState) PreviousEpochAttestationsLength() int {
    method PreviousEpochParticipation (line 2875) | func (m *MockBeaconState) PreviousEpochParticipation() *solid.Particip...
    method PreviousJustifiedCheckpoint (line 2913) | func (m *MockBeaconState) PreviousJustifiedCheckpoint() solid.Checkpoi...
    method PreviousSlot (line 2951) | func (m *MockBeaconState) PreviousSlot() uint64 {
    method PreviousStateRoot (line 2989) | func (m *MockBeaconState) PreviousStateRoot() common.Hash {
    method RandaoMixes (line 3027) | func (m *MockBeaconState) RandaoMixes() solid.HashVectorSSZ {
    method ResetCurrentEpochAttestations (line 3065) | func (m *MockBeaconState) ResetCurrentEpochAttestations() {
    method ResetEpochParticipation (line 3101) | func (m *MockBeaconState) ResetEpochParticipation() {
    method ResetEth1DataVotes (line 3137) | func (m *MockBeaconState) ResetEth1DataVotes() {
    method ResetHistoricalSummaries (line 3173) | func (m *MockBeaconState) ResetHistoricalSummaries() {
    method ResetPreviousEpochAttestations (line 3209) | func (m *MockBeaconState) ResetPreviousEpochAttestations() {
    method SetActivationEligibilityEpochForValidatorAtIndex (line 3245) | func (m *MockBeaconState) SetActivationEligibilityEpochForValidatorAtI...
    method SetActivationEpochForValidatorAtIndex (line 3281) | func (m *MockBeaconState) SetActivationEpochForValidatorAtIndex(index ...
    method SetBlockRootAt (line 3317) | func (m *MockBeaconState) SetBlockRootAt(index int, root common.Hash) {
    method SetConsolidationBalanceToConsume (line 3353) | func (m *MockBeaconState) SetConsolidationBalanceToConsume(arg0 uint64) {
    method SetCurrentEpochParticipationFlags (line 3389) | func (m *MockBeaconState) SetCurrentEpochParticipationFlags(flags []cl...
    method SetCurrentJustifiedCheckpoint (line 3425) | func (m *MockBeaconState) SetCurrentJustifiedCheckpoint(currentJustifi...
    method SetCurrentSyncCommittee (line 3461) | func (m *MockBeaconState) SetCurrentSyncCommittee(currentSyncCommittee...
    method SetDepositBalanceToConsume (line 3497) | func (m *MockBeaconState) SetDepositBalanceToConsume(arg0 uint64) {
    method SetDepositRequestsStartIndex (line 3533) | func (m *MockBeaconState) SetDepositRequestsStartIndex(arg0 uint64) {
    method SetEarlistConsolidationEpoch (line 3569) | func (m *MockBeaconState) SetEarlistConsolidationEpoch(arg0 uint64) {
    method SetEffectiveBalanceForValidatorAtIndex (line 3605) | func (m *MockBeaconState) SetEffectiveBalanceForValidatorAtIndex(index...
    method SetEpochParticipationForValidatorIndex (line 3641) | func (m *MockBeaconState) SetEpochParticipationForValidatorIndex(isCur...
    method SetEth1Data (line 3677) | func (m *MockBeaconState) SetEth1Data(eth1Data *cltypes.Eth1Data) {
    method SetEth1DepositIndex (line 3713) | func (m *MockBeaconState) SetEth1DepositIndex(eth1DepositIndex uint64) {
    method SetExitEpochForValidatorAtIndex (line 3749) | func (m *MockBeaconState) SetExitEpochForValidatorAtIndex(index int, e...
    method SetFinalizedCheckpoint (line 3785) | func (m *MockBeaconState) SetFinalizedCheckpoint(finalizedCheckpoint s...
    method SetFork (line 3821) | func (m *MockBeaconState) SetFork(fork *cltypes.Fork) {
    method SetInactivityScores (line 3857) | func (m *MockBeaconState) SetInactivityScores(scores []uint64) {
    method SetJustificationBits (line 3893) | func (m *MockBeaconState) SetJustificationBits(justificationBits cltyp...
    method SetLatestBlockHeader (line 3929) | func (m *MockBeaconState) SetLatestBlockHeader(header *cltypes.BeaconB...
    method SetLatestExecutionPayloadHeader (line 3965) | func (m *MockBeaconState) SetLatestExecutionPayloadHeader(header *clty...
    method SetNextSyncCommittee (line 4001) | func (m *MockBeaconState) SetNextSyncCommittee(nextSyncCommittee *soli...
    method SetNextWithdrawalIndex (line 4037) | func (m *MockBeaconState) SetNextWithdrawalIndex(index uint64) {
    method SetNextWithdrawalValidatorIndex (line 4073) | func (m *MockBeaconState) SetNextWithdrawalValidatorIndex(index uint64) {
    method SetPendingConsolidations (line 4109) | func (m *MockBeaconState) SetPendingConsolidations(consolidations *sol...
    method SetPendingDeposits (line 4145) | func (m *MockBeaconState) SetPendingDeposits(arg0 *solid.ListSSZ[*soli...
    method SetPendingPartialWithdrawals (line 4181) | func (m *MockBeaconState) SetPendingPartialWithdrawals(arg0 *solid.Lis...
    method SetPreviousEpochAttestations (line 4217) | func (m *MockBeaconState) SetPreviousEpochAttestations(attestations *s...
    method SetPreviousEpochParticipationFlags (line 4253) | func (m *MockBeaconState) SetPreviousEpochParticipationFlags(flags []c...
    method SetPreviousJustifiedCheckpoint (line 4289) | func (m *MockBeaconState) SetPreviousJustifiedCheckpoint(previousJusti...
    method SetPreviousStateRoot (line 4325) | func (m *MockBeaconState) SetPreviousStateRoot(root common.Hash) {
    method SetProposerLookahead (line 4361) | func (m *MockBeaconState) SetProposerLookahead(proposerLookahead solid...
    method SetRandaoMixAt (line 4397) | func (m *MockBeaconState) SetRandaoMixAt(index int, mix common.Hash) {
    method SetSlashingSegmentAt (line 4433) | func (m *MockBeaconState) SetSlashingSegmentAt(index int, segment uint...
    method SetSlot (line 4469) | func (m *MockBeaconState) SetSlot(slot uint64) {
    method SetStateRootAt (line 4505) | func (m *MockBeaconState) SetStateRootAt(index int, root common.Hash) {
    method SetValidatorAtIndex (line 4541) | func (m *MockBeaconState) SetValidatorAtIndex(index int, validator sol...
    method SetValidatorBalance (line 4577) | func (m *MockBeaconState) SetValidatorBalance(index int, balance uint6...
    method SetValidatorInactivityScore (line 4615) | func (m *MockBeaconState) SetValidatorInactivityScore(index int, score...
    method SetValidatorIsCurrentMatchingHeadAttester (line 4653) | func (m *MockBeaconState) SetValidatorIsCurrentMatchingHeadAttester(in...
    method SetValidatorIsCurrentMatchingSourceAttester (line 4691) | func (m *MockBeaconState) SetValidatorIsCurrentMatchingSourceAttester(...
    method SetValidatorIsCurrentMatchingTargetAttester (line 4729) | func (m *MockBeaconState) SetValidatorIsCurrentMatchingTargetAttester(...
    method SetValidatorIsPreviousMatchingHeadAttester (line 4767) | func (m *MockBeaconState) SetValidatorIsPreviousMatchingHeadAttester(i...
    method SetValidatorIsPreviousMatchingSourceAttester (line 4805) | func (m *MockBeaconState) SetValidatorIsPreviousMatchingSourceAttester...
    method SetValidatorIsPreviousMatchingTargetAttester (line 4843) | func (m *MockBeaconState) SetValidatorIsPreviousMatchingTargetAttester...
    method SetValidatorMinCurrentInclusionDelayAttestation (line 4881) | func (m *MockBeaconState) SetValidatorMinCurrentInclusionDelayAttestat...
    method SetValidatorMinPreviousInclusionDelayAttestation (line 4919) | func (m *MockBeaconState) SetValidatorMinPreviousInclusionDelayAttesta...
    method SetValidatorSlashed (line 4957) | func (m *MockBeaconState) SetValidatorSlashed(index int, slashed bool)...
    method SetVersion (line 4995) | func (m *MockBeaconState) SetVersion(version clparams.StateVersion) {
    method SetWithdrawableEpochForValidatorAtIndex (line 5031) | func (m *MockBeaconState) SetWithdrawableEpochForValidatorAtIndex(inde...
    method SetWithdrawalCredentialForValidatorAtIndex (line 5069) | func (m *MockBeaconState) SetWithdrawalCredentialForValidatorAtIndex(i...
    method SlashValidator (line 5105) | func (m *MockBeaconState) SlashValidator(slashedInd uint64, whistleblo...
    method SlashingSegmentAt (line 5144) | func (m *MockBeaconState) SlashingSegmentAt(pos int) uint64 {
    method Slot (line 5182) | func (m *MockBeaconState) Slot() uint64 {
    method StateRoots (line 5220) | func (m *MockBeaconState) StateRoots() solid.HashVectorSSZ {
    method SyncRewards (line 5258) | func (m *MockBeaconState) SyncRewards() (uint64, uint64, error) {
    method UpgradeToAltair (line 5298) | func (m *MockBeaconState) UpgradeToAltair() error {
    method UpgradeToBellatrix (line 5336) | func (m *MockBeaconState) UpgradeToBellatrix() error {
    method UpgradeToCapella (line 5374) | func (m *MockBeaconState) UpgradeToCapella() error {
    method UpgradeToDeneb (line 5412) | func (m *MockBeaconState) UpgradeToDeneb() error {
    method UpgradeToElectra (line 5450) | func (m *MockBeaconState) UpgradeToElectra() error {
    method UpgradeToFulu (line 5488) | func (m *MockBeaconState) UpgradeToFulu() error {
    method ValidatorBalance (line 5526) | func (m *MockBeaconState) ValidatorBalance(index int) (uint64, error) {
    method ValidatorEffectiveBalance (line 5565) | func (m *MockBeaconState) ValidatorEffectiveBalance(index int) (uint64...
    method ValidatorExitEpoch (line 5604) | func (m *MockBeaconState) ValidatorExitEpoch(index int) (uint64, error) {
    method ValidatorForValidatorIndex (line 5643) | func (m *MockBeaconState) ValidatorForValidatorIndex(index int) (solid...
    method ValidatorInactivityScore (line 5682) | func (m *MockBeaconState) ValidatorInactivityScore(index int) (uint64,...
    method ValidatorIndexByPubkey (line 5721) | func (m *MockBeaconState) ValidatorIndexByPubkey(key [48]byte) (uint64...
    method ValidatorIsCurrentMatchingHeadAttester (line 5760) | func (m *MockBeaconState) ValidatorIsCurrentMatchingHeadAttester(idx i...
    method ValidatorIsCurrentMatchingSourceAttester (line 5799) | func (m *MockBeaconState) ValidatorIsCurrentMatchingSourceAttester(idx...
    method ValidatorIsCurrentMatchingTargetAttester (line 5838) | func (m *MockBeaconState) ValidatorIsCurrentMatchingTargetAttester(idx...
    method ValidatorIsPreviousMatchingHeadAttester (line 5877) | func (m *MockBeaconState) ValidatorIsPreviousMatchingHeadAttester(idx ...
    method ValidatorIsPreviousMatchingSourceAttester (line 5916) | func (m *MockBeaconState) ValidatorIsPreviousMatchingSourceAttester(id...
    method ValidatorIsPreviousMatchingTargetAttester (line 5955) | func (m *MockBeaconState) ValidatorIsPreviousMatchingTargetAttester(id...
    method ValidatorLength (line 5994) | func (m *MockBeaconState) ValidatorLength() int {
    method ValidatorMinCurrentInclusionDelayAttestation (line 6032) | func (m *MockBeaconState) ValidatorMinCurrentInclusionDelayAttestation...
    method ValidatorMinPreviousInclusionDelayAttestation (line 6071) | func (m *MockBeaconState) ValidatorMinPreviousInclusionDelayAttestatio...
    method ValidatorSet (line 6110) | func (m *MockBeaconState) ValidatorSet() *solid.ValidatorSet {
    method ValidatorWithdrawableEpoch (line 6148) | func (m *MockBeaconState) ValidatorWithdrawableEpoch(index int) (uint6...
    method Version (line 6187) | func (m *MockBeaconState) Version() clparams.StateVersion {
  type MockBeaconStateMockRecorder (line 31) | type MockBeaconStateMockRecorder struct
    method AddCurrentEpochAtteastation (line 54) | func (mr *MockBeaconStateMockRecorder) AddCurrentEpochAtteastation(att...
    method AddCurrentEpochParticipationFlags (line 90) | func (mr *MockBeaconStateMockRecorder) AddCurrentEpochParticipationFla...
    method AddEth1DataVote (line 126) | func (mr *MockBeaconStateMockRecorder) AddEth1DataVote(vote any) *Mock...
    method AddHistoricalRoot (line 162) | func (mr *MockBeaconStateMockRecorder) AddHistoricalRoot(root any) *Mo...
    method AddHistoricalSummary (line 198) | func (mr *MockBeaconStateMockRecorder) AddHistoricalSummary(summary an...
    method AddInactivityScore (line 234) | func (mr *MockBeaconStateMockRecorder) AddInactivityScore(score any) *...
    method AddPreviousEpochAttestation (line 270) | func (mr *MockBeaconStateMockRecorder) AddPreviousEpochAttestation(att...
    method AddPreviousEpochParticipationAt (line 306) | func (mr *MockBeaconStateMockRecorder) AddPreviousEpochParticipationAt...
    method AddPreviousEpochParticipationFlags (line 342) | func (mr *MockBeaconStateMockRecorder) AddPreviousEpochParticipationFl...
    method AddValidator (line 378) | func (mr *MockBeaconStateMockRecorder) AddValidator(validator, balance...
    method AppendPendingConsolidation (line 414) | func (mr *MockBeaconStateMockRecorder) AppendPendingConsolidation(cons...
    method AppendPendingDeposit (line 450) | func (mr *MockBeaconStateMockRecorder) AppendPendingDeposit(deposit an...
    method AppendPendingPartialWithdrawal (line 486) | func (mr *MockBeaconStateMockRecorder) AppendPendingPartialWithdrawal(...
    method AppendValidator (line 522) | func (mr *MockBeaconStateMockRecorder) AppendValidator(in any) *MockBe...
    method BaseReward (line 561) | func (mr *MockBeaconStateMockRecorder) BaseReward(index any) *MockBeac...
    method BaseRewardPerIncrement (line 599) | func (mr *MockBeaconStateMockRecorder) BaseRewardPerIncrement() *MockB...
    method BeaconConfig (line 637) | func (mr *MockBeaconStateMockRecorder) BeaconConfig() *MockBeaconState...
    method BlockRoot (line 676) | func (mr *MockBeaconStateMockRecorder) BlockRoot() *MockBeaconStateBlo...
    method BlockRoots (line 714) | func (mr *MockBeaconStateMockRecorder) BlockRoots() *MockBeaconStateBl...
    method Clone (line 752) | func (mr *MockBeaconStateMockRecorder) Clone() *MockBeaconStateCloneCa...
    method CommitteeCount (line 790) | func (mr *MockBeaconStateMockRecorder) CommitteeCount(epoch any) *Mock...
    method ComputeCommittee (line 829) | func (mr *MockBeaconStateMockRecorder) ComputeCommittee(indicies, slot...
    method ComputeExitEpochAndUpdateChurn (line 867) | func (mr *MockBeaconStateMockRecorder) ComputeExitEpochAndUpdateChurn(...
    method ComputeNextSyncCommittee (line 906) | func (mr *MockBeaconStateMockRecorder) ComputeNextSyncCommittee() *Moc...
    method CurrentEpochAttestations (line 944) | func (mr *MockBeaconStateMockRecorder) CurrentEpochAttestations() *Moc...
    method CurrentEpochAttestationsLength (line 982) | func (mr *MockBeaconStateMockRecorder) CurrentEpochAttestationsLength(...
    method CurrentJustifiedCheckpoint (line 1020) | func (mr *MockBeaconStateMockRecorder) CurrentJustifiedCheckpoint() *M...
    method CurrentSyncCommittee (line 1058) | func (mr *MockBeaconStateMockRecorder) CurrentSyncCommittee() *MockBea...
    method DebugPrint (line 1094) | func (mr *MockBeaconStateMockRecorder) DebugPrint(prefix any) *MockBea...
    method DecodeSSZ (line 1132) | func (mr *MockBeaconStateMockRecorder) DecodeSSZ(buf, version any) *Mo...
    method EncodeSSZ (line 1171) | func (mr *MockBeaconStateMockRecorder) EncodeSSZ(buf any) *MockBeaconS...
    method EncodingSizeSSZ (line 1209) | func (mr *MockBeaconStateMockRecorder) EncodingSizeSSZ() *MockBeaconSt...
    method EpochParticipation (line 1247) | func (mr *MockBeaconStateMockRecorder) EpochParticipation(currentEpoch...
    method EpochParticipationForValidatorIndex (line 1285) | func (mr *MockBeaconStateMockRecorder) EpochParticipationForValidatorI...
    method Eth1Data (line 1323) | func (mr *MockBeaconStateMockRecorder) Eth1Data() *MockBeaconStateEth1...
    method Eth1DataVotes (line 1361) | func (mr *MockBeaconStateMockRecorder) Eth1DataVotes() *MockBeaconStat...
    method Eth1DepositIndex (line 1399) | func (mr *MockBeaconStateMockRecorder) Eth1DepositIndex() *MockBeaconS...
    method FinalizedCheckpoint (line 1437) | func (mr *MockBeaconStateMockRecorder) FinalizedCheckpoint() *MockBeac...
    method ForEachBalance (line 1473) | func (mr *MockBeaconStateMockRecorder) ForEachBalance(fn any) *MockBea...
    method ForEachSlashingSegment (line 1509) | func (mr *MockBeaconStateMockRecorder) ForEachSlashingSegment(fn any) ...
    method ForEachValidator (line 1545) | func (mr *MockBeaconStateMockRecorder) ForEachValidator(fn any) *MockB...
    method Fork (line 1583) | func (mr *MockBeaconStateMockRecorder) Fork() *MockBeaconStateForkCall {
    method GenesisTime (line 1621) | func (mr *MockBeaconStateMockRecorder) GenesisTime() *MockBeaconStateG...
    method GenesisValidatorsRoot (line 1659) | func (mr *MockBeaconStateMockRecorder) GenesisValidatorsRoot() *MockBe...
    method GetActiveValidatorsIndices (line 1697) | func (mr *MockBeaconStateMockRecorder) GetActiveValidatorsIndices(epoc...
    method GetAttestationParticipationFlagIndicies (line 1736) | func (mr *MockBeaconStateMockRecorder) GetAttestationParticipationFlag...
    method GetAttestingIndicies (line 1775) | func (mr *MockBeaconStateMockRecorder) GetAttestingIndicies(attestatio...
    method GetBeaconCommitee (line 1814) | func (mr *MockBeaconStateMockRecorder) GetBeaconCommitee(slot, committ...
    method GetBeaconProposerIndex (line 1853) | func (mr *MockBeaconStateMockRecorder) GetBeaconProposerIndex() *MockB...
    method GetBeaconProposerIndices (line 1892) | func (mr *MockBeaconStateMockRecorder) GetBeaconProposerIndices(epoch ...
    method GetBlockRootAtSlot (line 1931) | func (mr *MockBeaconStateMockRecorder) GetBlockRootAtSlot(slot any) *M...
    method GetConsolidationBalanceToConsume (line 1969) | func (mr *MockBeaconStateMockRecorder) GetConsolidationBalanceToConsum...
    method GetDepositBalanceToConsume (line 2007) | func (mr *MockBeaconStateMockRecorder) GetDepositBalanceToConsume() *M...
    method GetDepositRequestsStartIndex (line 2045) | func (mr *MockBeaconStateMockRecorder) GetDepositRequestsStartIndex() ...
    method GetDomain (line 2084) | func (mr *MockBeaconStateMockRecorder) GetDomain(domainType, epoch any...
    method GetEarlistConsolidationEpoch (line 2122) | func (mr *MockBeaconStateMockRecorder) GetEarlistConsolidationEpoch() ...
    method GetPendingConsolidations (line 2160) | func (mr *MockBeaconStateMockRecorder) GetPendingConsolidations() *Moc...
    method GetPendingDeposits (line 2198) | func (mr *MockBeaconStateMockRecorder) GetPendingDeposits() *MockBeaco...
    method GetPendingPartialWithdrawals (line 2236) | func (mr *MockBeaconStateMockRecorder) GetPendingPartialWithdrawals() ...
    method GetProposerLookahead (line 2274) | func (mr *MockBeaconStateMockRecorder) GetProposerLookahead() *MockBea...
    method GetRandaoMix (line 2312) | func (mr *MockBeaconStateMockRecorder) GetRandaoMix(index any) *MockBe...
    method GetRandaoMixes (line 2350) | func (mr *MockBeaconStateMockRecorder) GetRandaoMixes(epoch any) *Mock...
    method GetTotalActiveBalance (line 2388) | func (mr *MockBeaconStateMockRecorder) GetTotalActiveBalance() *MockBe...
    method GetValidatorActivationChurnLimit (line 2426) | func (mr *MockBeaconStateMockRecorder) GetValidatorActivationChurnLimi...
    method GetValidatorChurnLimit (line 2464) | func (mr *MockBeaconStateMockRecorder) GetValidatorChurnLimit() *MockB...
    method HashSSZ (line 2503) | func (mr *MockBeaconStateMockRecorder) HashSSZ() *MockBeaconStateHashS...
    method InitiateValidatorExit (line 2541) | func (mr *MockBeaconStateMockRecorder) InitiateValidatorExit(index any...
    method JustificationBits (line 2579) | func (mr *MockBeaconStateMockRecorder) JustificationBits() *MockBeacon...
    method LatestBlockHeader (line 2617) | func (mr *MockBeaconStateMockRecorder) LatestBlockHeader() *MockBeacon...
    method LatestExecutionPayloadHeader (line 2655) | func (mr *MockBeaconStateMockRecorder) LatestExecutionPayloadHeader() ...
    method NextSyncCommittee (line 2693) | func (mr *MockBeaconStateMockRecorder) NextSyncCommittee() *MockBeacon...
    method NextWithdrawalIndex (line 2731) | func (mr *MockBeaconStateMockRecorder) NextWithdrawalIndex() *MockBeac...
    method NextWithdrawalValidatorIndex (line 2769) | func (mr *MockBeaconStateMockRecorder) NextWithdrawalValidatorIndex() ...
    method PreviousEpochAttestations (line 2807) | func (mr *MockBeaconStateMockRecorder) PreviousEpochAttestations() *Mo...
    method PreviousEpochAttestationsLength (line 2845) | func (mr *MockBeaconStateMockRecorder) PreviousEpochAttestationsLength...
    method PreviousEpochParticipation (line 2883) | func (mr *MockBeaconStateMockRecorder) PreviousEpochParticipation() *M...
    method PreviousJustifiedCheckpoint (line 2921) | func (mr *MockBeaconStateMockRecorder) PreviousJustifiedCheckpoint() *...
    method PreviousSlot (line 2959) | func (mr *MockBeaconStateMockRecorder) PreviousSlot() *MockBeaconState...
    method PreviousStateRoot (line 2997) | func (mr *MockBeaconStateMockRecorder) PreviousStateRoot() *MockBeacon...
    method RandaoMixes (line 3035) | func (mr *MockBeaconStateMockRecorder) RandaoMixes() *MockBeaconStateR...
    method ResetCurrentEpochAttestations (line 3071) | func (mr *MockBeaconStateMockRecorder) ResetCurrentEpochAttestations()...
    method ResetEpochParticipation (line 3107) | func (mr *MockBeaconStateMockRecorder) ResetEpochParticipation() *Mock...
    method ResetEth1DataVotes (line 3143) | func (mr *MockBeaconStateMockRecorder) ResetEth1DataVotes() *MockBeaco...
    method ResetHistoricalSummaries (line 3179) | func (mr *MockBeaconStateMockRecorder) ResetHistoricalSummaries() *Moc...
    method ResetPreviousEpochAttestations (line 3215) | func (mr *MockBeaconStateMockRecorder) ResetPreviousEpochAttestations(...
    method SetActivationEligibilityEpochForValidatorAtIndex (line 3251) | func (mr *MockBeaconStateMockRecorder) SetActivationEligibilityEpochFo...
    method SetActivationEpochForValidatorAtIndex (line 3287) | func (mr *MockBeaconStateMockRecorder) SetActivationEpochForValidatorA...
    method SetBlockRootAt (line 3323) | func (mr *MockBeaconStateMockRecorder) SetBlockRootAt(index, root any)...
    method SetConsolidationBalanceToConsume (line 3359) | func (mr *MockBeaconStateMockRecorder) SetConsolidationBalanceToConsum...
    method SetCurrentEpochParticipationFlags (line 3395) | func (mr *MockBeaconStateMockRecorder) SetCurrentEpochParticipationFla...
    method SetCurrentJustifiedCheckpoint (line 3431) | func (mr *MockBeaconStateMockRecorder) SetCurrentJustifiedCheckpoint(c...
    method SetCurrentSyncCommittee (line 3467) | func (mr *MockBeaconStateMockRecorder) SetCurrentSyncCommittee(current...
    method SetDepositBalanceToConsume (line 3503) | func (mr *MockBeaconStateMockRecorder) SetDepositBalanceToConsume(arg0...
    method SetDepositRequestsStartIndex (line 3539) | func (mr *MockBeaconStateMockRecorder) SetDepositRequestsStartIndex(ar...
    method SetEarlistConsolidationEpoch (line 3575) | func (mr *MockBeaconStateMockRecorder) SetEarlistConsolidationEpoch(ar...
    method SetEffectiveBalanceForValidatorAtIndex (line 3611) | func (mr *MockBeaconStateMockRecorder) SetEffectiveBalanceForValidator...
    method SetEpochParticipationForValidatorIndex (line 3647) | func (mr *MockBeaconStateMockRecorder) SetEpochParticipationForValidat...
    method SetEth1Data (line 3683) | func (mr *MockBeaconStateMockRecorder) SetEth1Data(eth1Data any) *Mock...
    method SetEth1DepositIndex (line 3719) | func (mr *MockBeaconStateMockRecorder) SetEth1DepositIndex(eth1Deposit...
    method SetExitEpochForValidatorAtIndex (line 3755) | func (mr *MockBeaconStateMockRecorder) SetExitEpochForValidatorAtIndex...
    method SetFinalizedCheckpoint (line 3791) | func (mr *MockBeaconStateMockRecorder) SetFinalizedCheckpoint(finalize...
    method SetFork (line 3827) | func (mr *MockBeaconStateMockRecorder) SetFork(fork any) *MockBeaconSt...
    method SetInactivityScores (line 3863) | func (mr *MockBeaconStateMockRecorder) SetInactivityScores(scores any)...
    method SetJustificationBits (line 3899) | func (mr *MockBeaconStateMockRecorder) SetJustificationBits(justificat...
    method SetLatestBlockHeader (line 3935) | func (mr *MockBeaconStateMockRecorder) SetLatestBlockHeader(header any...
    method SetLatestExecutionPayloadHeader (line 3971) | func (mr *MockBeaconStateMockRecorder) SetLatestExecutionPayloadHeader...
    method SetNextSyncCommittee (line 4007) | func (mr *MockBeaconStateMockRecorder) SetNextSyncCommittee(nextSyncCo...
    method SetNextWithdrawalIndex (line 4043) | func (mr *MockBeaconStateMockRecorder) SetNextWithdrawalIndex(index an...
    method SetNextWithdrawalValidatorIndex (line 4079) | func (mr *MockBeaconStateMockRecorder) SetNextWithdrawalValidatorIndex...
    method SetPendingConsolidations (line 4115) | func (mr *MockBeaconStateMockRecorder) SetPendingConsolidations(consol...
    method SetPendingDeposits (line 4151) | func (mr *MockBeaconStateMockRecorder) SetPendingDeposits(arg0 any) *M...
    method SetPendingPartialWithdrawals (line 4187) | func (mr *MockBeaconStateMockRecorder) SetPendingPartialWithdrawals(ar...
    method SetPreviousEpochAttestations (line 4223) | func (mr *MockBeaconStateMockRecorder) SetPreviousEpochAttestations(at...
    method SetPreviousEpochParticipationFlags (line 4259) | func (mr *MockBeaconStateMockRecorder) SetPreviousEpochParticipationFl...
    method SetPreviousJustifiedCheckpoint (line 4295) | func (mr *MockBeaconStateMockRecorder) SetPreviousJustifiedCheckpoint(...
    method SetPreviousStateRoot (line 4331) | func (mr *MockBeaconStateMockRecorder) SetPreviousStateRoot(root any) ...
    method SetProposerLookahead (line 4367) | func (mr *MockBeaconStateMockRecorder) SetProposerLookahead(proposerLo...
    method SetRandaoMixAt (line 4403) | func (mr *MockBeaconStateMockRecorder) SetRandaoMixAt(index, mix any) ...
    method SetSlashingSegmentAt (line 4439) | func (mr *MockBeaconStateMockRecorder) SetSlashingSegmentAt(index, seg...
    method SetSlot (line 4475) | func (mr *MockBeaconStateMockRecorder) SetSlot(slot any) *MockBeaconSt...
    method SetStateRootAt (line 4511) | func (mr *MockBeaconStateMockRecorder) SetStateRootAt(index, root any)...
    method SetValidatorAtIndex (line 4547) | func (mr *MockBeaconStateMockRecorder) SetValidatorAtIndex(index, vali...
    method SetValidatorBalance (line 4585) | func (mr *MockBeaconStateMockRecorder) SetValidatorBalance(index, bala...
    method SetValidatorInactivityScore (line 4623) | func (mr *MockBeaconStateMockRecorder) SetValidatorInactivityScore(ind...
    method SetValidatorIsCurrentMatchingHeadAttester (line 4661) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsCurrentMatchingHe...
    method SetValidatorIsCurrentMatchingSourceAttester (line 4699) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsCurrentMatchingSo...
    method SetValidatorIsCurrentMatchingTargetAttester (line 4737) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsCurrentMatchingTa...
    method SetValidatorIsPreviousMatchingHeadAttester (line 4775) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsPreviousMatchingH...
    method SetValidatorIsPreviousMatchingSourceAttester (line 4813) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsPreviousMatchingS...
    method SetValidatorIsPreviousMatchingTargetAttester (line 4851) | func (mr *MockBeaconStateMockRecorder) SetValidatorIsPreviousMatchingT...
    method SetValidatorMinCurrentInclusionDelayAttestation (line 4889) | func (mr *MockBeaconStateMockRecorder) SetValidatorMinCurrentInclusion...
    method SetValidatorMinPreviousInclusionDelayAttestation (line 4927) | func (mr *MockBeaconStateMockRecorder) SetValidatorMinPreviousInclusio...
    method SetValidatorSlashed (line 4965) | func (mr *MockBeaconStateMockRecorder) SetValidatorSlashed(index, slas...
    method SetVersion (line 5001) | func (mr *MockBeaconStateMockRecorder) SetVersion(version any) *MockBe...
    method SetWithdrawableEpochForValidatorAtIndex (line 5039) | func (mr *MockBeaconStateMockRecorder) SetWithdrawableEpochForValidato...
    method SetWithdrawalCredentialForValidatorAtIndex (line 5075) | func (mr *MockBeaconStateMockRecorder) SetWithdrawalCredentialForValid...
    method SlashValidator (line 5114) | func (mr *MockBeaconStateMockRecorder) SlashValidator(slashedInd, whis...
    method SlashingSegmentAt (line 5152) | func (mr *MockBeaconStateMockRecorder) SlashingSegmentAt(pos any) *Moc...
    method Slot (line 5190) | func (mr *MockBeaconStateMockRecorder) Slot() *MockBeaconStateSlotCall {
    method StateRoots (line 5228) | func (mr *MockBeaconStateMockRecorder) StateRoots() *MockBeaconStateSt...
    method SyncRewards (line 5268) | func (mr *MockBeaconStateMockRecorder) SyncRewards() *MockBeaconStateS...
    method UpgradeToAltair (line 5306) | func (mr *MockBeaconStateMockRecorder) UpgradeToAltair() *MockBeaconSt...
    method UpgradeToBellatrix (line 5344) | func (mr *MockBeaconStateMockRecorder) UpgradeToBellatrix() *MockBeaco...
    method UpgradeToCapella (line 5382) | func (mr *MockBeaconStateMockRecorder) UpgradeToCapella() *MockBeaconS...
    method UpgradeToDeneb (line 5420) | func (mr *MockBeaconStateMockRecorder) UpgradeToDeneb() *MockBeaconSta...
    method UpgradeToElectra (line 5458) | func (mr *MockBeaconStateMockRecorder) UpgradeToElectra() *MockBeaconS...
    method UpgradeToFulu (line 5496) | func (mr *MockBeaconStateMockRecorder) UpgradeToFulu() *MockBeaconStat...
    method ValidatorBalance (line 5535) | func (mr *MockBeaconStateMockRecorder) ValidatorBalance(index any) *Mo...
    method ValidatorEffectiveBalance (line 5574) | func (mr *MockBeaconStateMockRecorder) ValidatorEffectiveBalance(index...
    method ValidatorExitEpoch (line 5613) | func (mr *MockBeaconStateMockRecorder) ValidatorExitEpoch(index any) *...
    method ValidatorForValidatorIndex (line 5652) | func (mr *MockBeaconStateMockRecorder) ValidatorForValidatorIndex(inde...
    method ValidatorInactivityScore (line 5691) | func (mr *MockBeaconStateMockRecorder) ValidatorInactivityScore(index ...
    method ValidatorIndexByPubkey (line 5730) | func (mr *MockBeaconStateMockRecorder) ValidatorIndexByPubkey(key any)...
    method ValidatorIsCurrentMatchingHeadAttester (line 5769) | func (mr *MockBeaconStateMockRecorder) ValidatorIsCurrentMatchingHeadA...
    method ValidatorIsCurrentMatchingSourceAttester (line 5808) | func (mr *MockBeaconStateMockRecorder) ValidatorIsCurrentMatchingSourc...
    method ValidatorIsCurrentMatchingTargetAttester (line 5847) | func (mr *MockBeaconStateMockRecorder) ValidatorIsCurrentMatchingTarge...
    method ValidatorIsPreviousMatchingHeadAttester (line 5886) | func (mr *MockBeaconStateMockRecorder) ValidatorIsPreviousMatchingHead...
    method ValidatorIsPreviousMatchingSourceAttester (line 5925) | func (mr *MockBeaconStateMockRecorder) ValidatorIsPreviousMatchingSour...
    method ValidatorIsPreviousMatchingTargetAttester (line 5964) | func (mr *MockBeaconStateMockRecorder) ValidatorIsPreviousMatchingTarg...
    method ValidatorLength (line 6002) | func (mr *MockBeaconStateMockRecorder) ValidatorLength() *MockBeaconSt...
    method ValidatorMinCurrentInclusionDelayAttestation (line 6041) | func (mr *MockBeaconStateMockRecorder) ValidatorMinCurrentInclusionDel...
    method ValidatorMinPreviousInclusionDelayAttestation (line 6080) | func (mr *MockBeaconStateMockRecorder) ValidatorMinPreviousInclusionDe...
    method ValidatorSet (line 6118) | func (mr *MockBeaconStateMockRecorder) ValidatorSet() *MockBeaconState...
    method ValidatorWithdrawableEpoch (line 6157) | func (mr *MockBeaconStateMockRecorder) ValidatorWithdrawableEpoch(inde...
    method Version (line 6195) | func (mr *MockBeaconStateMockRecorder) Version() *MockBeaconStateVersi...
  function NewMockBeaconState (line 36) | func NewMockBeaconState(ctrl *gomock.Controller) *MockBeaconState {
  type MockBeaconStateAddCurrentEpochAtteastationCall (line 61) | type MockBeaconStateAddCurrentEpochAtteastationCall struct
    method Return (line 66) | func (c *MockBeaconStateAddCurrentEpochAtteastationCall) Return() *Moc...
    method Do (line 72) | func (c *MockBeaconStateAddCurrentEpochAtteastationCall) Do(f func(*so...
    method DoAndReturn (line 78) | func (c *MockBeaconStateAddCurrentEpochAtteastationCall) DoAndReturn(f...
  type MockBeaconStateAddCurrentEpochParticipationFlagsCall (line 97) | type MockBeaconStateAddCurrentEpochParticipationFlagsCall struct
    method Return (line 102) | func (c *MockBeaconStateAddCurrentEpochParticipationFlagsCall) Return(...
    method Do (line 108) | func (c *MockBeaconStateAddCurrentEpochParticipationFlagsCall) Do(f fu...
    method DoAndReturn (line 114) | func (c *MockBeaconStateAddCurrentEpochParticipationFlagsCall) DoAndRe...
  type MockBeaconStateAddEth1DataVoteCall (line 133) | type MockBeaconStateAddEth1DataVoteCall struct
    method Return (line 138) | func (c *MockBeaconStateAddEth1DataVoteCall) Return() *MockBeaconState...
    method Do (line 144) | func (c *MockBeaconStateAddEth1DataVoteCall) Do(f func(*cltypes.Eth1Da...
    method DoAndReturn (line 150) | func (c *MockBeaconStateAddEth1DataVoteCall) DoAndReturn(f func(*cltyp...
  type MockBeaconStateAddHistoricalRootCall (line 169) | type MockBeaconStateAddHistoricalRootCall struct
    method Return (line 174) | func (c *MockBeaconStateAddHistoricalRootCall) Return() *MockBeaconSta...
    method Do (line 180) | func (c *MockBeaconStateAddHistoricalRootCall) Do(f func(common.Hash))...
    method DoAndReturn (line 186) | func (c *MockBeaconStateAddHistoricalRootCall) DoAndReturn(f func(comm...
  type MockBeaconStateAddHistoricalSummaryCall (line 205) | type MockBeaconStateAddHistoricalSummaryCall struct
    method Return (line 210) | func (c *MockBeaconStateAddHistoricalSummaryCall) Return() *MockBeacon...
    method Do (line 216) | func (c *MockBeaconStateAddHistoricalSummaryCall) Do(f func(*cltypes.H...
    method DoAndReturn (line 222) | func (c *MockBeaconStateAddHistoricalSummaryCall) DoAndReturn(f func(*...
  type MockBeaconStateAddInactivityScoreCall (line 241) | type MockBeaconStateAddInactivityScoreCall struct
    method Return (line 246) | func (c *MockBeaconStateAddInactivityScoreCall) Return() *MockBeaconSt...
    method Do (line 252) | func (c *MockBeaconStateAddInactivityScoreCall) Do(f func(uint64)) *Mo...
    method DoAndReturn (line 258) | func (c *MockBeaconStateAddInactivityScoreCall) DoAndReturn(f func(uin...
  type MockBeaconStateAddPreviousEpochAttestationCall (line 277) | type MockBeaconStateAddPreviousEpochAttestationCall struct
    method Return (line 282) | func (c *MockBeaconStateAddPreviousEpochAttestationCall) Return() *Moc...
    method Do (line 288) | func (c *MockBeaconStateAddPreviousEpochAttestationCall) Do(f func(*so...
    method DoAndReturn (line 294) | func (c *MockBeaconStateAddPreviousEpochAttestationCall) DoAndReturn(f...
  type MockBeaconStateAddPreviousEpochParticipationAtCall (line 313) | type MockBeaconStateAddPreviousEpochParticipationAtCall struct
    method Return (line 318) | func (c *MockBeaconStateAddPreviousEpochParticipationAtCall) Return() ...
    method Do (line 324) | func (c *MockBeaconStateAddPreviousEpochParticipationAtCall) Do(f func...
    method DoAndReturn (line 330) | func (c *MockBeaconStateAddPreviousEpochParticipationAtCall) DoAndRetu...
  type MockBeaconStateAddPreviousEpochParticipationFlagsCall (line 349) | type MockBeaconStateAddPreviousEpochParticipationFlagsCall struct
    method Return (line 354) | func (c *MockBeaconStateAddPreviousEpochParticipationFlagsCall) Return...
    method Do (line 360) | func (c *MockBeaconStateAddPreviousEpochParticipationFlagsCall) Do(f f...
    method DoAndReturn (line 366) | func (c *MockBeaconStateAddPreviousEpochParticipationFlagsCall) DoAndR...
  type MockBeaconStateAddValidatorCall (line 385) | type MockBeaconStateAddValidatorCall struct
    method Return (line 390) | func (c *MockBeaconStateAddValidatorCall) Return() *MockBeaconStateAdd...
    method Do (line 396) | func (c *MockBeaconStateAddValidatorCall) Do(f func(solid.Validator, u...
    method DoAndReturn (line 402) | func (c *MockBeaconStateAddValidatorCall) DoAndReturn(f func(solid.Val...
  type MockBeaconStateAppendPendingConsolidationCall (line 421) | type MockBeaconStateAppendPendingConsolidationCall struct
    method Return (line 426) | func (c *MockBeaconStateAppendPendingConsolidationCall) Return() *Mock...
    method Do (line 432) | func (c *MockBeaconStateAppendPendingConsolidationCall) Do(f func(*sol...
    method DoAndReturn (line 438) | func (c *MockBeaconStateAppendPendingConsolidationCall) DoAndReturn(f ...
  type MockBeaconStateAppendPendingDepositCall (line 457) | type MockBeaconStateAppendPendingDepositCall struct
    method Return (line 462) | func (c *MockBeaconStateAppendPendingDepositCall) Return() *MockBeacon...
    method Do (line 468) | func (c *MockBeaconStateAppendPendingDepositCall) Do(f func(*solid.Pen...
    method DoAndReturn (line 474) | func (c *MockBeaconStateAppendPendingDepositCall) DoAndReturn(f func(*...
  type MockBeaconStateAppendPendingPartialWithdrawalCall (line 493) | type MockBeaconStateAppendPendingPartialWithdrawalCall struct
    method Return (line 498) | func (c *MockBeaconStateAppendPendingPartialWithdrawalCall) Return() *...
    method Do (line 504) | func (c *MockBeaconStateAppendPendingPartialWithdrawalCall) Do(f func(...
    method DoAndReturn (line 510) | func (c *MockBeaconStateAppendPendingPartialWithdrawalCall) DoAndRetur...
  type MockBeaconStateAppendValidatorCall (line 529) | type MockBeaconStateAppendValidatorCall struct
    method Return (line 534) | func (c *MockBeaconStateAppendValidatorCall) Return() *MockBeaconState...
    method Do (line 540) | func (c *MockBeaconStateAppendValidatorCall) Do(f func(solid.Validator...
    method DoAndReturn (line 546) | func (c *MockBeaconStateAppendValidatorCall) DoAndReturn(f func(solid....
  type MockBeaconStateBaseRewardCall (line 568) | type MockBeaconStateBaseRewardCall struct
    method Return (line 573) | func (c *MockBeaconStateBaseRewardCall) Return(arg0 uint64, arg1 error...
    method Do (line 579) | func (c *MockBeaconStateBaseRewardCall) Do(f func(uint64) (uint64, err...
    method DoAndReturn (line 585) | func (c *MockBeaconStateBaseRewardCall) DoAndReturn(f func(uint64) (ui...
  type MockBeaconStateBaseRewardPerIncrementCall (line 606) | type MockBeaconStateBaseRewardPerIncrementCall struct
    method Return (line 611) | func (c *MockBeaconStateBaseRewardPerIncrementCall) Return(arg0 uint64...
    method Do (line 617) | func (c *MockBeaconStateBaseRewardPerIncrementCall) Do(f func() uint64...
    method DoAndReturn (line 623) | func (c *MockBeaconStateBaseRewardPerIncrementCall) DoAndReturn(f func...
  type MockBeaconStateBeaconConfigCall (line 644) | type MockBeaconStateBeaconConfigCall struct
    method Return (line 649) | func (c *MockBeaconStateBeaconConfigCall) Return(arg0 *clparams.Beacon...
    method Do (line 655) | func (c *MockBeaconStateBeaconConfigCall) Do(f func() *clparams.Beacon...
    method DoAndReturn (line 661) | func (c *MockBeaconStateBeaconConfigCall) DoAndReturn(f func() *clpara...
  type MockBeaconStateBlockRootCall (line 683) | type MockBeaconStateBlockRootCall struct
    method Return (line 688) | func (c *MockBeaconStateBlockRootCall) Return(arg0 [32]byte, arg1 erro...
    method Do (line 694) | func (c *MockBeaconStateBlockRootCall) Do(f func() ([32]byte, error)) ...
    method DoAndReturn (line 700) | func (c *MockBeaconStateBlockRootCall) DoAndReturn(f func() ([32]byte,...
  type MockBeaconStateBlockRootsCall (line 721) | type MockBeaconStateBlockRootsCall struct
    method Return (line 726) | func (c *MockBeaconStateBlockRootsCall) Return(arg0 solid.HashVectorSS...
    method Do (line 732) | func (c *MockBeaconStateBlockRootsCall) Do(f func() solid.HashVectorSS...
    method DoAndReturn (line 738) | func (c *MockBeaconStateBlockRootsCall) DoAndReturn(f func() solid.Has...
  type MockBeaconStateCloneCall (line 759) | type MockBeaconStateCloneCall struct
    method Return (line 764) | func (c *MockBeaconStateCloneCall) Return(arg0 clonable.Clonable) *Moc...
    method Do (line 770) | func (c *MockBeaconStateCloneCall) Do(f func() clonable.Clonable) *Moc...
    method DoAndReturn (line 776) | func (c *MockBeaconStateCloneCall) DoAndReturn(f func() clonable.Clona...
  type MockBeaconStateCommitteeCountCall (line 797) | type MockBeaconStateCommitteeCountCall struct
    method Return (line 802) | func (c *MockBeaconStateCommitteeCountCall) Return(arg0 uint64) *MockB...
    method Do (line 808) | func (c *MockBeaconStateCommitteeCountCall) Do(f func(uint64) uint64) ...
    method DoAndReturn (line 814) | func (c *MockBeaconStateCommitteeCountCall) DoAndReturn(f func(uint64)...
  type MockBeaconStateComputeCommitteeCall (line 836) | type MockBeaconStateComputeCommitteeCall struct
    method Return (line 841) | func (c *MockBeaconStateComputeCommitteeCall) Return(arg0 []uint64, ar...
    method Do (line 847) | func (c *MockBeaconStateComputeCommitteeCall) Do(f func([]uint64, uint...
    method DoAndReturn (line 853) | func (c *MockBeaconStateComputeCommitteeCall) DoAndReturn(f func([]uin...
  type MockBeaconStateComputeExitEpochAndUpdateChurnCall (line 874) | type MockBeaconStateComputeExitEpochAndUpdateChurnCall struct
    method Return (line 879) | func (c *MockBeaconStateComputeExitEpochAndUpdateChurnCall) Return(arg...
    method Do (line 885) | func (c *MockBeaconStateComputeExitEpochAndUpdateChurnCall) Do(f func(...
    method DoAndReturn (line 891) | func (c *MockBeaconStateComputeExitEpochAndUpdateChurnCall) DoAndRetur...
  type MockBeaconStateComputeNextSyncCommitteeCall (line 913) | type MockBeaconStateComputeNextSyncCommitteeCall struct
    method Return (line 918) | func (c *MockBeaconStateComputeNextSyncCommitteeCall) Return(arg0 *sol...
    method Do (line 924) | func (c *MockBeaconStateComputeNextSyncCommitteeCall) Do(f func() (*so...
    method DoAndReturn (line 930) | func (c *MockBeaconStateComputeNextSyncCommitteeCall) DoAndReturn(f fu...
  type MockBeaconStateCurrentEpochAttestationsCall (line 951) | type MockBeaconStateCurrentEpochAttestationsCall struct
    method Return (line 956) | func (c *MockBeaconStateCurrentEpochAttestationsCall) Return(arg0 *sol...
    method Do (line 962) | func (c *MockBeaconStateCurrentEpochAttestationsCall) Do(f func() *sol...
    method DoAndReturn (line 968) | func (c *MockBeaconStateCurrentEpochAttestationsCall) DoAndReturn(f fu...
  type MockBeaconStateCurrentEpochAttestationsLengthCall (line 989) | type MockBeaconStateCurrentEpochAttestationsLengthCall struct
    method Return (line 994) | func (c *MockBeaconStateCurrentEpochAttestationsLengthCall) Return(arg...
    method Do (line 1000) | func (c *MockBeaconStateCurrentEpochAttestationsLengthCall) Do(f func(...
    method DoAndReturn (line 1006) | func (c *MockBeaconStateCurrentEpochAttestationsLengthCall) DoAndRetur...
  type MockBeaconStateCurrentJustifiedCheckpointCall (line 1027) | type MockBeaconStateCurrentJustifiedCheckpointCall struct
    method Return (line 1032) | func (c *MockBeaconStateCurrentJustifiedCheckpointCall) Return(arg0 so...
    method Do (line 1038) | func (c *MockBeaconStateCurrentJustifiedCheckpointCall) Do(f func() so...
    method DoAndReturn (line 1044) | func (c *MockBeaconStateCurrentJustifiedCheckpointCall) DoAndReturn(f ...
  type MockBeaconStateCurrentSyncCommitteeCall (line 1065) | type MockBeaconStateCurrentSyncCommitteeCall struct
    method Return (line 1070) | func (c *MockBeaconStateCurrentSyncCommitteeCall) Return(arg0 *solid.S...
    method Do (line 1076) | func (c *MockBeaconStateCurrentSyncCommitteeCall) Do(f func() *solid.S...
    method DoAndReturn (line 1082) | func (c *MockBeaconStateCurrentSyncCommitteeCall) DoAndReturn(f func()...
  type MockBeaconStateDebugPrintCall (line 1101) | type MockBeaconStateDebugPrintCall struct
    method Return (line 1106) | func (c *MockBeaconStateDebugPrintCall) Return() *MockBeaconStateDebug...
    method Do (line 1112) | func (c *MockBeaconStateDebugPrintCall) Do(f func(string)) *MockBeacon...
    method DoAndReturn (line 1118) | func (c *MockBeaconStateDebugPrintCall) DoAndReturn(f func(string)) *M...
  type MockBeaconStateDecodeSSZCall (line 1139) | type MockBeaconStateDecodeSSZCall struct
    method Return (line 1144) | func (c *MockBeaconStateDecodeSSZCall) Return(arg0 error) *MockBeaconS...
    method Do (line 1150) | func (c *MockBeaconStateDecodeSSZCall) Do(f func([]byte, int) error) *...
    method DoAndReturn (line 1156) | func (c *MockBeaconStateDecodeSSZCall) DoAndReturn(f func([]byte, int)...
  type MockBeaconStateEncodeSSZCall (line 1178) | type MockBeaconStateEncodeSSZCall struct
    method Return (line 1183) | func (c *MockBeaconStateEncodeSSZCall) Return(arg0 []byte, arg1 error)...
    method Do (line 1189) | func (c *MockBeaconStateEncodeSSZCall) Do(f func([]byte) ([]byte, erro...
    method DoAndReturn (line 1195) | func (c *MockBeaconStateEncodeSSZCall) DoAndReturn(f func([]byte) ([]b...
  type MockBeaconStateEncodingSizeSSZCall (line 1216) | type MockBeaconStateEncodingSizeSSZCall struct
    method Return (line 1221) | func (c *MockBeaconStateEncodingSizeSSZCall) Return(size int) *MockBea...
    method Do (line 1227) | func (c *MockBeaconStateEncodingSizeSSZCall) Do(f func() int) *MockBea...
    method DoAndReturn (line 1233) | func (c *MockBeaconStateEncodingSizeSSZCall) DoAndReturn(f func() int)...
  type MockBeaconStateEpochParticipationCall (line 1254) | type MockBeaconStateEpochParticipationCall struct
    method Return (line 1259) | func (c *MockBeaconStateEpochParticipationCall) Return(arg0 *solid.Par...
    method Do (line 1265) | func (c *MockBeaconStateEpochParticipationCall) Do(f func(bool) *solid...
    method DoAndReturn (line 1271) | func (c *MockBeaconStateEpochParticipationCall) DoAndReturn(f func(boo...
  type MockBeaconStateEpochParticipationForValidatorIndexCall (line 1292) | type MockBeaconStateEpochParticipationForValidatorIndexCall struct
    method Return (line 1297) | func (c *MockBeaconStateEpochParticipationForValidatorIndexCall) Retur...
    method Do (line 1303) | func (c *MockBeaconStateEpochParticipationForValidatorIndexCall) Do(f ...
    method DoAndReturn (line 1309) | func (c *MockBeaconStateEpochParticipationForValidatorIndexCall) DoAnd...
  type MockBeaconStateEth1DataCall (line 1330) | type MockBeaconStateEth1DataCall struct
    method Return (line 1335) | func (c *MockBeaconStateEth1DataCall) Return(arg0 *cltypes.Eth1Data) *...
    method Do (line 1341) | func (c *MockBeaconStateEth1DataCall) Do(f func() *cltypes.Eth1Data) *...
    method DoAndReturn (line 1347) | func (c *MockBeaconStateEth1DataCall) DoAndReturn(f func() *cltypes.Et...
  type MockBeaconStateEth1DataVotesCall (line 1368) | type MockBeaconStateEth1DataVotesCall struct
    method Return (line 1373) | func (c *MockBeaconStateEth1DataVotesCall) Return(arg0 *solid.ListSSZ[...
    method Do (line 1379) | func (c *MockBeaconStateEth1DataVotesCall) Do(f func() *solid.ListSSZ[...
    method DoAndReturn (line 1385) | func (c *MockBeaconStateEth1DataVotesCall) DoAndReturn(f func() *solid...
  type MockBeaconStateEth1DepositIndexCall (line 1406) | type MockBeaconStateEth1DepositIndexCall struct
    method Return (line 1411) | func (c *MockBeaconStateEth1DepositIndexCall) Return(arg0 uint64) *Moc...
    method Do (line 1417) | func (c *MockBeaconStateEth1DepositIndexCall) Do(f func() uint64) *Moc...
    method DoAndReturn (line 1423) | func (c *MockBeaconStateEth1DepositIndexCall) DoAndReturn(f func() uin...
  type MockBeaconStateFinalizedCheckpointCall (line 1444) | type MockBeaconStateFinalizedCheckpointCall struct
    method Return (line 1449) | func (c *MockBeaconStateFinalizedCheckpointCall) Return(arg0 solid.Che...
    method Do (line 1455) | func (c *MockBeaconStateFinalizedCheckpointCall) Do(f func() solid.Che...
    method DoAndReturn (line 1461) | func (c *MockBeaconStateFinalizedCheckpointCall) DoAndReturn(f func() ...
  type MockBeaconStateForEachBalanceCall (line 1480) | type MockBeaconStateForEachBalanceCall struct
    method Return (line 1485) | func (c *MockBeaconStateForEachBalanceCall) Return() *MockBeaconStateF...
    method Do (line 1491) | func (c *MockBeaconStateForEachBalanceCall) Do(f func(func(uint64, int...
    method DoAndReturn (line 1497) | func (c *MockBeaconStateForEachBalanceCall) DoAndReturn(f func(func(ui...
  type MockBeaconStateForEachSlashingSegmentCall (line 1516) | type MockBeaconStateForEachSlashingSegmentCall struct
    method Return (line 1521) | func (c *MockBeaconStateForEachSlashingSegmentCall) Return() *MockBeac...
    method Do (line 1527) | func (c *MockBeaconStateForEachSlashingSegmentCall) Do(f func(func(int...
    method DoAndReturn (line 1533) | func (c *MockBeaconStateForEachSlashingSegmentCall) DoAndReturn(f func...
  type MockBeaconStateForEachValidatorCall (line 1552) | type MockBeaconStateForEachValidatorCall struct
    method Return (line 1557) | func (c *MockBeaconStateForEachValidatorCall) Return() *MockBeaconStat...
    method Do (line 1563) | func (c *MockBeaconStateForEachValidatorCall) Do(f func(func(solid.Val...
    method DoAndReturn (line 1569) | func (c *MockBeaconStateForEachValidatorCall) DoAndReturn(f func(func(...
  type MockBeaconStateForkCall (line 1590) | type MockBeaconStateForkCall struct
    method Return (line 1595) | func (c *MockBeaconStateForkCall) Return(arg0 *cltypes.Fork) *MockBeac...
    method Do (line 1601) | func (c *MockBeaconStateForkCall) Do(f func() *cltypes.Fork) *MockBeac...
    method DoAndReturn (line 1607) | func (c *MockBeaconStateForkCall) DoAndReturn(f func() *cltypes.Fork) ...
  type MockBeaconStateGenesisTimeCall (line 1628) | type MockBeaconStateGenesisTimeCall struct
    method Return (line 1633) | func (c *MockBeaconStateGenesisTimeCall) Return(arg0 uint64) *MockBeac...
    method Do (line 1639) | func (c *MockBeaconStateGenesisTimeCall) Do(f func() uint64) *MockBeac...
    method DoAndReturn (line 1645) | func (c *MockBeaconStateGenesisTimeCall) DoAndReturn(f func() uint64) ...
  type MockBeaconStateGenesisValidatorsRootCall (line 1666) | type MockBeaconStateGenesisValidatorsRootCall struct
    method Return (line 1671) | func (c *MockBeaconStateGenesisValidatorsRootCall) Return(arg0 common....
    method Do (line 1677) | func (c *MockBeaconStateGenesisValidatorsRootCall) Do(f func() common....
    method DoAndReturn (line 1683) | func (c *MockBeaconStateGenesisValidatorsRootCall) DoAndReturn(f func(...
  type MockBeaconStateGetActiveValidatorsIndicesCall (line 1704) | type MockBeaconStateGetActiveValidatorsIndicesCall struct
    method Return (line 1709) | func (c *MockBeaconStateGetActiveValidatorsIndicesCall) Return(indicie...
    method Do (line 1715) | func (c *MockBeaconStateGetActiveValidatorsIndicesCall) Do(f func(uint...
    method DoAndReturn (line 1721) | func (c *MockBeaconStateGetActiveValidatorsIndicesCall) DoAndReturn(f ...
  type MockBeaconStateGetAttestationParticipationFlagIndiciesCall (line 1743) | type MockBeaconStateGetAttestationParticipationFlagIndiciesCall struct
    method Return (line 1748) | func (c *MockBeaconStateGetAttestationParticipationFlagIndiciesCall) R...
    method Do (line 1754) | func (c *MockBeaconStateGetAttestationParticipationFlagIndiciesCall) D...
    method DoAndReturn (line 1760) | func (c *MockBeaconStateGetAttestationParticipationFlagIndiciesCall) D...
  type MockBeaconStateGetAttestingIndiciesCall (line 1782) | type MockBeaconStateGetAttestingIndiciesCall struct
    method Return (line 1787) | func (c *MockBeaconStateGetAttestingIndiciesCall) Return(arg0 []uint64...
    method Do (line 1793) | func (c *MockBeaconStateGetAttestingIndiciesCall) Do(f func(*solid.Att...
    method DoAndReturn (line 1799) | func (c *MockBeaconStateGetAttestingIndiciesCall) DoAndReturn(f func(*...
  type MockBeaconStateGetBeaconCommiteeCall (line 1821) | type MockBeaconStateGetBeaconCommiteeCall struct
    method Return (line 1826) | func (c *MockBeaconStateGetBeaconCommiteeCall) Return(arg0 []uint64, a...
    method Do (line 1832) | func (c *MockBeaconStateGetBeaconCommiteeCall) Do(f func(uint64, uint6...
    method DoAndReturn (line 1838) | func (c *MockBeaconStateGetBeaconCommiteeCall) DoAndReturn(f func(uint...
  type MockBeaconStateGetBeaconProposerIndexCall (line 1860) | type MockBeaconStateGetBeaconProposerIndexCall struct
    method Return (line 1865) | func (c *MockBeaconStateGetBeaconProposerIndexCall) Return(arg0 uint64...
    method Do (line 1871) | func (c *MockBeaconStateGetBeaconProposerIndexCall) Do(f func() (uint6...
    method DoAndReturn (line 1877) | func (c *MockBeaconStateGetBeaconProposerIndexCall) DoAndReturn(f func...
  type MockBeaconStateGetBeaconProposerIndicesCall (line 1899) | type MockBeaconStateGetBeaconProposerIndicesCall struct
    method Return (line 1904) | func (c *MockBeaconStateGetBeaconProposerIndicesCall) Return(arg0 []ui...
    method Do (line 1910) | func (c *MockBeaconStateGetBeaconProposerIndicesCall) Do(f func(uint64...
    method DoAndReturn (line 1916) | func (c *MockBeaconStateGetBeaconProposerIndicesCall) DoAndReturn(f fu...
  type MockBeaconStateGetBlockRootAtSlotCall (line 1938) | type MockBeaconStateGetBlockRootAtSlotCall struct
    method Return (line 1943) | func (c *MockBeaconStateGetBlockRootAtSlotCall) Return(arg0 common.Has...
    method Do (line 1949) | func (c *MockBeaconStateGetBlockRootAtSlotCall) Do(f func(uint64) (com...
    method DoAndReturn (line 1955) | func (c *MockBeaconStateGetBlockRootAtSlotCall) DoAndReturn(f func(uin...
  type MockBeaconStateGetConsolidationBalanceToConsumeCall (line 1976) | type MockBeaconStateGetConsolidationBalanceToConsumeCall struct
    method Return (line 1981) | func (c *MockBeaconStateGetConsolidationBalanceToConsumeCall) Return(a...
    method Do (line 1987) | func (c *MockBeaconStateGetConsolidationBalanceToConsumeCall) Do(f fun...
    method DoAndReturn (line 1993) | func (c *MockBeaconStateGetConsolidationBalanceToConsumeCall) DoAndRet...
  type MockBeaconStateGetDepositBalanceToConsumeCall (line 2014) | type MockBeaconStateGetDepositBalanceToConsumeCall struct
    method Return (line 2019) | func (c *MockBeaconStateGetDepositBalanceToConsumeCall) Return(arg0 ui...
    method Do (line 2025) | func (c *MockBeaconStateGetDepositBalanceToConsumeCall) Do(f func() ui...
    method DoAndReturn (line 2031) | func (c *MockBeaconStateGetDepositBalanceToConsumeCall) DoAndReturn(f ...
  type MockBeaconStateGetDepositRequestsStartIndexCall (line 2052) | type MockBeaconStateGetDepositRequestsStartIndexCall struct
    method Return (line 2057) | func (c *MockBeaconStateGetDepositRequestsStartIndexCall) Return(arg0 ...
    method Do (line 2063) | func (c *MockBeaconStateGetDepositRequestsStartIndexCall) Do(f func() ...
    method DoAndReturn (line 2069) | func (c *MockBeaconStateGetDepositRequestsStartIndexCall) DoAndReturn(...
  type MockBeaconStateGetDomainCall (line 2091) | type MockBeaconStateGetDomainCall struct
    method Return (line 2096) | func (c *MockBeaconStateGetDomainCall) Return(arg0 []byte, arg1 error)...
    method Do (line 2102) | func (c *MockBeaconStateGetDomainCall) Do(f func([4]byte, uint64) ([]b...
    method DoAndReturn (line 2108) | func (c *MockBeaconStateGetDomainCall) DoAndReturn(f func([4]byte, uin...
  type MockBeaconStateGetEarlistConsolidationEpochCall (line 2129) | type MockBeaconStateGetEarlistConsolidationEpochCall struct
    method Return (line 2134) | func (c *MockBeaconStateGetEarlistConsolidationEpochCall) Return(arg0 ...
    method Do (line 2140) | func (c *MockBeaconStateGetEarlistConsolidationEpochCall) Do(f func() ...
    method DoAndReturn (line 2146) | func (c *MockBeaconStateGetEarlistConsolidationEpochCall) DoAndReturn(...
  type MockBeaconStateGetPendingConsolidationsCall (line 2167) | type MockBeaconStateGetPendingConsolidationsCall struct
    method Return (line 2172) | func (c *MockBeaconStateGetPendingConsolidationsCall) Return(arg0 *sol...
    method Do (line 2178) | func (c *MockBeaconStateGetPendingConsolidationsCall) Do(f func() *sol...
    method DoAndReturn (line 2184) | func (c *MockBeaconStateGetPendingConsolidationsCall) DoAndReturn(f fu...
  type MockBeaconStateGetPendingDepositsCall (line 2205) | type MockBeaconStateGetPendingDepositsCall struct
    method Return (line 2210) | func (c *MockBeaconStateGetPendingDepositsCall) Return(arg0 *solid.Lis...
    method Do (line 2216) | func (c *MockBeaconStateGetPendingDepositsCall) Do(f func() *solid.Lis...
    method DoAndReturn (line 2222) | func (c *MockBeaconStateGetPendingDepositsCall) DoAndReturn(f func() *...
  type MockBeaconStateGetPendingPartialWithdrawalsCall (line 2243) | type MockBeaconStateGetPendingPartialWithdrawalsCall struct
    method Return (line 2248) | func (c *MockBeaconStateGetPendingPartialWithdrawalsCall) Return(arg0 ...
    method Do (line 2254) | func (c *MockBeaconStateGetPendingPartialWithdrawalsCall) Do(f func() ...
    method DoAndReturn (line 2260) | func (c *MockBeaconStateGetPendingPartialWithdrawalsCall) DoAndReturn(...
  type MockBeaconStateGetProposerLookaheadCall (line 2281) | type MockBeaconStateGetProposerLookaheadCall struct
    method Return (line 2286) | func (c *MockBeaconStateGetProposerLookaheadCall) Return(arg0 solid.Ui...
    method Do (line 2292) | func (c *MockBeaconStateGetProposerLookaheadCall) Do(f func() solid.Ui...
    method DoAndReturn (line 2298) | func (c *MockBeaconStateGetProposerLookaheadCall) DoAndReturn(f func()...
  type MockBeaconStateGetRandaoMixCall (line 2319) | type MockBeaconStateGetRandaoMixCall struct
    method Return (line 2324) | func (c *MockBeaconStateGetRandaoMixCall) Return(arg0 [32]byte) *MockB...
    method Do (line 2330) | func (c *MockBeaconStateGetRandaoMixCall) Do(f func(int) [32]byte) *Mo...
    method DoAndReturn (line 2336) | func (c *MockBeaconStateGetRandaoMixCall) DoAndReturn(f func(int) [32]...
  type MockBeaconStateGetRandaoMixesCall (line 2357) | type MockBeaconStateGetRandaoMixesCall struct
    method Return (line 2362) | func (c *MockBeaconStateGetRandaoMixesCall) Return(arg0 [32]byte) *Moc...
    method Do (line 2368) | func (c *MockBeaconStateGetRandaoMixesCall) Do(f func(uint64) [32]byte...
    method DoAndReturn (line 2374) | func (c *MockBeaconStateGetRandaoMixesCall) DoAndReturn(f func(uint64)...
  type MockBeaconStateGetTotalActiveBalanceCall (line 2395) | type MockBeaconStateGetTotalActiveBalanceCall struct
    method Return (line 2400) | func (c *MockBeaconStateGetTotalActiveBalanceCall) Return(arg0 uint64)...
    method Do (line 2406) | func (c *MockBeaconStateGetTotalActiveBalanceCall) Do(f func() uint64)...
    method DoAndReturn (line 2412) | func (c *MockBeaconStateGetTotalActiveBalanceCall) DoAndReturn(f func(...
  type MockBeaconStateGetValidatorActivationChurnLimitCall (line 2433) | type MockBeaconStateGetValidatorActivationChurnLimitCall struct
    method Return (line 2438) | func (c *MockBeaconStateGetValidatorActivationChurnLimitCall) Return(a...
    method Do (line 2444) | func (c *MockBeaconStateGetValidatorActivationChurnLimitCall) Do(f fun...
    method DoAndReturn (line 2450) | func (c *MockBeaconStateGetValidatorActivationChurnLimitCall) DoAndRet...
  type MockBeaconStateGetValidatorChurnLimitCall (line 2471) | type MockBeaconStateGetValidatorChurnLimitCall struct
    method Return (line 2476) | func (c *MockBeaconStateGetValidatorChurnLimitCall) Return(arg0 uint64...
    method Do (line 2482) | func (c *MockBeaconStateGetValidatorChurnLimitCall) Do(f func() uint64...
    method DoAndReturn (line 2488) | func (c *MockBeaconStateGetValidatorChurnLimitCall) DoAndReturn(f func...
  type MockBeaconStateHashSSZCall (line 2510) | type MockBeaconStateHashSSZCall struct
    method Return (line 2515) | func (c *MockBeaconStateHashSSZCall) Return(out [32]byte, err error) *...
    method Do (line 2521) | func (c *MockBeaconStateHashSSZCall) Do(f func() ([32]byte, error)) *M...
    method DoAndReturn (line 2527) | func (c *MockBeaconStateHashSSZCall) DoAndReturn(f func() ([32]byte, e...
  type MockBeaconStateInitiateValidatorExitCall (line 2548) | type MockBeaconStateInitiateValidatorExitCall struct
    method Return (line 2553) | func (c *MockBeaconStateInitiateValidatorExitCall) Return(arg0 error) ...
    method Do (line 2559) | func (c *MockBeaconStateInitiateValidatorExitCall) Do(f func(uint64) e...
    method DoAndReturn (line 2565) | func (c *MockBeaconStateInitiateValidatorExitCall) DoAndReturn(f func(...
  type MockBeaconStateJustificationBitsCall (line 2586) | type MockBeaconStateJustificationBitsCall struct
    method Return (line 2591) | func (c *MockBeaconStateJustificationBitsCall) Return(arg0 cltypes.Jus...
    method Do (line 2597) | func (c *MockBeaconStateJustificationBitsCall) Do(f func() cltypes.Jus...
    method DoAndReturn (line 2603) | func (c *MockBeaconStateJustificationBitsCall) DoAndReturn(f func() cl...
  type MockBeaconStateLatestBlockHeaderCall (line 2624) | type MockBeaconStateLatestBlockHeaderCall struct
    method Return (line 2629) | func (c *MockBeaconStateLatestBlockHeaderCall) Return(arg0 cltypes.Bea...
    method Do (line 2635) | func (c *MockBeaconStateLatestBlockHeaderCall) Do(f func() cltypes.Bea...
    method DoAndReturn (line 2641) | func (c *MockBeaconStateLatestBlockHeaderCall) DoAndReturn(f func() cl...
  type MockBeaconStateLatestExecutionPayloadHeaderCall (line 2662) | type MockBeaconStateLatestExecutionPayloadHeaderCall struct
    method Return (line 2667) | func (c *MockBeaconStateLatestExecutionPayloadHeaderCall) Return(arg0 ...
    method Do (line 2673) | func (c *MockBeaconStateLatestExecutionPayloadHeaderCall) Do(f func() ...
    method DoAndReturn (line 2679) | func (c *MockBeaconStateLatestExecutionPayloadHeaderCall) DoAndReturn(...
  type MockBeaconStateNextSyncCommitteeCall (line 2700) | type MockBeaconStateNextSyncCommitteeCall struct
    method Return (line 2705) | func (c *MockBeaconStateNextSyncCommitteeCall) Return(arg0 *solid.Sync...
    method Do (line 2711) | func (c *MockBeaconStateNextSyncCommitteeCall) Do(f func() *solid.Sync...
    method DoAndReturn (line 2717) | func (c *MockBeaconStateNextSyncCommitteeCall) DoAndReturn(f func() *s...
  type MockBeaconStateNextWithdrawalIndexCall (line 2738) | type MockBeaconStateNextWithdrawalIndexCall struct
    method Return (line 2743) | func (c *MockBeaconStateNextWithdrawalIndexCall) Return(arg0 uint64) *...
    method Do (line 2749) | func (c *MockBeaconStateNextWithdrawalIndexCall) Do(f func() uint64) *...
    method DoAndReturn (line 2755) | func (c *MockBeaconStateNextWithdrawalIndexCall) DoAndReturn(f func() ...
  type MockBeaconStateNextWithdrawalValidatorIndexCall (line 2776) | type MockBeaconStateNextWithdrawalValidatorIndexCall struct
    method Return (line 2781) | func (c *MockBeaconStateNextWithdrawalValidatorIndexCall) Return(arg0 ...
    method Do (line 2787) | func (c *MockBeaconStateNextWithdrawalValidatorIndexCall) Do(f func() ...
    method DoAndReturn (line 2793) | func (c *MockBeaconStateNextWithdrawalValidatorIndexCall) DoAndReturn(...
  type MockBeaconStatePreviousEpochAttestationsCall (line 2814) | type MockBeaconStatePreviousEpochAttestationsCall struct
    method Return (line 2819) | func (c *MockBeaconStatePreviousEpochAttestationsCall) Return(arg0 *so...
    method Do (line 2825) | func (c *MockBeaconStatePreviousEpochAttestationsCall) Do(f func() *so...
    method DoAndReturn (line 2831) | func (c *MockBeaconStatePreviousEpochAttestationsCall) DoAndReturn(f f...
  type MockBeaconStatePreviousEpochAttestationsLengthCall (line 2852) | type MockBeaconStatePreviousEpochAttestationsLengthCall struct
    method Return (line 2857) | func (c *MockBeaconStatePreviousEpochAttestationsLengthCall) Return(ar...
    method Do (line 2863) | func (c *MockBeaconStatePreviousEpochAttestationsLengthCall) Do(f func...
    method DoAndReturn (line 2869) | func (c *MockBeaconStatePreviousEpochAttestationsLengthCall) DoAndRetu...
  type MockBeaconStatePreviousEpochParticipationCall (line 2890) | type MockBeaconStatePreviousEpochParticipationCall struct
    method Return (line 2895) | func (c *MockBeaconStatePreviousEpochParticipationCall) Return(arg0 *s...
    method Do (line 2901) | func (c *MockBeaconStatePreviousEpochParticipationCall) Do(f func() *s...
    method DoAndReturn (line 2907) | func (c *MockBeaconStatePreviousEpochParticipationCall) DoAndReturn(f ...
  type MockBeaconStatePreviousJustifiedCheckpointCall (line 2928) | type MockBeaconStatePreviousJustifiedCheckpointCall struct
    method Return (line 2933) | func (c *MockBeaconStatePreviousJustifiedCheckpointCall) Return(arg0 s...
    method Do (line 2939) | func (c *MockBeaconStatePreviousJustifiedCheckpointCall) Do(f func() s...
    method DoAndReturn (line 2945) | func (c *MockBeaconStatePreviousJustifiedCheckpointCall) DoAndReturn(f...
  type MockBeaconStatePreviousSlotCall (line 2966) | type MockBeaconStatePreviousSlotCall struct
    method Return (line 2971) | func (c *MockBeaconStatePreviousSlotCall) Return(arg0 uint64) *MockBea...
    method Do (line 2977) | func (c *MockBeaconStatePreviousSlotCall) Do(f func() uint64) *MockBea...
    method DoAndReturn (line 2983) | func (c *MockBeaconStatePreviousSlotCall) DoAndReturn(f func() uint64)...
  type MockBeaconStatePreviousStateRootCall (line 3004) | type MockBeaconStatePreviousStateRootCall struct
    method Return (line 3009) | func (c *MockBeaconStatePreviousStateRootCall) Return(arg0 common.Hash...
    method Do (line 3015) | func (c *MockBeaconStatePreviousStateRootCall) Do(f func() common.Hash...
    method DoAndReturn (line 3021) | func (c *MockBeaconStatePreviousStateRootCall) DoAndReturn(f func() co...
  type MockBeaconStateRandaoMixesCall (line 3042) | type MockBeaconStateRandaoMixesCall struct
    method Return (line 3047) | func (c *MockBeaconStateRandaoMixesCall) Return(arg0 solid.HashVectorS...
    method Do (line 3053) | func (c *MockBeaconStateRandaoMixesCall) Do(f func() solid.HashVectorS...
    method DoAndReturn (line 3059) | func (c *MockBeaconStateRandaoMixesCall) DoAndReturn(f func() solid.Ha...
  type MockBeaconStateResetCurrentEpochAttestationsCall (line 3078) | type MockBeaconStateResetCurrentEpochAttestationsCall struct
    method Return (line 3083) | func (c *MockBeaconStateResetCurrentEpochAttestationsCall) Return() *M...
    method Do (line 3089) | func (c *MockBeaconStateResetCurrentEpochAttestationsCall) Do(f func()...
    method DoAndReturn (line 3095) | func (c *MockBeaconStateResetCurrentEpochAttestationsCall) DoAndReturn...
  type MockBeaconStateResetEpochParticipationCall (line 3114) | type MockBeaconStateResetEpochParticipationCall struct
    method Return (line 3119) | func (c *MockBeaconStateResetEpochParticipationCall) Return() *MockBea...
    method Do (line 3125) | func (c *MockBeaconStateResetEpochParticipationCall) Do(f func()) *Moc...
    method DoAndReturn (line 3131) | func (c *MockBeaconStateResetEpochParticipationCall) DoAndReturn(f fun...
  type MockBeaconStateResetEth1DataVotesCall (line 3150) | type MockBeaconStateResetEth1DataVotesCall struct
    method Return (line 3155) | func (c *MockBeaconStateResetEth1DataVotesCall) Return() *MockBeaconSt...
    method Do (line 3161) | func (c *MockBeaconStateResetEth1DataVotesCall) Do(f func()) *MockBeac...
    method DoAndReturn (line 3167) | func (c *MockBeaconStateResetEth1DataVotesCall) DoAndReturn(f func()) ...
  type MockBeaconStateResetHistoricalSummariesCall (line 3186) | type MockBeaconStateResetHistoricalSummariesCall struct
    method Return (line 3191) | func (c *MockBeaconStateResetHistoricalSummariesCall) Return() *MockBe...
    method Do (line 3197) | func (c *MockBeaconStateResetHistoricalSummariesCall) Do(f func()) *Mo...
    method DoAndReturn (line 3203) | func (c *MockBeaconStateResetHistoricalSummariesCall) DoAndReturn(f fu...
  type MockBeaconStateResetPreviousEpochAttestationsCall (line 3222) | type MockBeaconStateResetPreviousEpochAttestationsCall struct
    method Return (line 3227) | func (c *MockBeaconStateResetPreviousEpochAttestationsCall) Return() *...
    method Do (line 3233) | func (c *MockBeaconStateResetPreviousEpochAttestationsCall) Do(f func(...
    method DoAndReturn (line 3239) | func (c *MockBeaconStateResetPreviousEpochAttestationsCall) DoAndRetur...
  type MockBeaconStateSetActivationEligibilityEpochForValidatorAtIndexCall (line 3258) | type MockBeaconStateSetActivationEligibilityEpochForValidatorAtIndexCall...
    method Return (line 3263) | func (c *MockBeaconStateSetActivationEligibilityEpochForValidatorAtInd...
    method Do (line 3269) | func (c *MockBeaconStateSetActivationEligibilityEpochForValidatorAtInd...
    method DoAndReturn (line 3275) | func (c *MockBeaconStateSetActivationEligibilityEpochForValidatorAtInd...
  type MockBeaconStateSetActivationEpochForValidatorAtIndexCall (line 3294) | type MockBeaconStateSetActivationEpochForValidatorAtIndexCall struct
    method Return (line 3299) | func (c *MockBeaconStateSetActivationEpochForValidatorAtIndexCall) Ret...
    method Do (line 3305) | func (c *MockBeaconStateSetActivationEpochForValidatorAtIndexCall) Do(...
    method DoAndReturn (line 3311) | func (c *MockBeaconStateSetActivationEpochForValidatorAtIndexCall) DoA...
  type MockBeaconStateSetBlockRootAtCall (line 3330) | type MockBeaconStateSetBlockRootAtCall struct
    method Return (line 3335) | func (c *MockBeaconStateSetBlockRootAtCall) Return() *MockBeaconStateS...
    method Do (line 3341) | func (c *MockBeaconStateSetBlockRootAtCall) Do(f func(int, common.Hash...
    method DoAndReturn (line 3347) | func (c *MockBeaconStateSetBlockRootAtCall) DoAndReturn(f func(int, co...
  type MockBeaconStateSetConsolidationBalanceToConsumeCall (line 3366) | type MockBeaconStateSetConsolidationBalanceToConsumeCall struct
    method Return (line 3371) | func (c *MockBeaconStateSetConsolidationBalanceToConsumeCall) Return()...
    method Do (line 3377) | func (c *MockBeaconStateSetConsolidationBalanceToConsumeCall) Do(f fun...
    method DoAndReturn (line 3383) | func (c *MockBeaconStateSetConsolidationBalanceToConsumeCall) DoAndRet...
  type MockBeaconStateSetCurrentEpochParticipationFlagsCall (line 3402) | type MockBeaconStateSetCurrentEpochParticipationFlagsCall struct
    method Return (line 3407) | func (c *MockBeaconStateSetCurrentEpochParticipationFlagsCall) Return(...
    method Do (line 3413) | func (c *MockBeaconStateSetCurrentEpochParticipationFlagsCall) Do(f fu...
    method DoAndReturn (line 3419) | func (c *MockBeaconStateSetCurrentEpochParticipationFlagsCall) DoAndRe...
  type MockBeaconStateSetCurrentJustifiedCheckpointCall (line 3438) | type MockBeaconStateSetCurrentJustifiedCheckpointCall struct
    method Return (line 3443) | func (c *MockBeaconStateSetCurrentJustifiedCheckpointCall) Return() *M...
    method Do (line 3449) | func (c *MockBeaconStateSetCurrentJustifiedCheckpointCall) Do(f func(s...
    method DoAndReturn (line 3455) | func (c *MockBeaconStateSetCurrentJustifiedCheckpointCall) DoAndReturn...
  type MockBeaconStateSetCurrentSyncCommitteeCall (line 3474) | type MockBeaconStateSetCurrentSyncCommitteeCall struct
    method Return (line 3479) | func (c *MockBeaconStateSetCurrentSyncCommitteeCall) Return() *MockBea...
    method Do (line 3485) | func (c *MockBeaconStateSetCurrentSyncCommitteeCall) Do(f func(*solid....
    method DoAndReturn (line 3491) | func (c *MockBeaconStateSetCurrentSyncCommitteeCall) DoAndReturn(f fun...
  type MockBeaconStateSetDepositBalanceToConsumeCall (line 3510) | type MockBeaconStateSetDepositBalanceToConsumeCall struct
    method Return (line 3515) | func (c *MockBeaconStateSetDepositBalanceToConsumeCall) Return() *Mock...
    method Do (line 3521) | func (c *MockBeaconStateSetDepositBalanceToConsumeCall) Do(f func(uint...
    method DoAndReturn (line 3527) | func (c *MockBeaconStateSetDepositBalanceToConsumeCall) DoAndReturn(f ...
  type MockBeaconStateSetDepositRequestsStartIndexCall (line 3546) | type MockBeaconStateSetDepositRequestsStartIndexCall struct
    method Return (line 3551) | func (c *MockBeaconStateSetDepositRequestsStartIndexCall) Return() *Mo...
    method Do (line 3557) | func (c *MockBeaconStateSetDepositRequestsStartIndexCall) Do(f func(ui...
    method DoAndReturn (line 3563) | func (c *MockBeaconStateSetDepositRequestsStartIndexCall) DoAndReturn(...
  type MockBeaconStateSetEarlistConsolidationEpochCall (line 3582) | type MockBeaconStateSetEarlistConsolidationEpochCall struct
    method Return (line 3587) | func (c *MockBeaconStateSetEarlistConsolidationEpochCall) Return() *Mo...
    method Do (line 3593) | func (c *MockBeaconStateSetEarlistConsolidationEpochCall) Do(f func(ui...
    method DoAndReturn (line 3599) | func (c *MockBeaconStateSetEarlistConsolidationEpochCall) DoAndReturn(...
  type MockBeaconStateSetEffectiveBalanceForValidatorAtIndexCall (line 3618) | type MockBeaconStateSetEffectiveBalanceForValidatorAtIndexCall struct
    method Return (line 3623) | func (c *MockBeaconStateSetEffectiveBalanceForValidatorAtIndexCall) Re...
    method Do (line 3629) | func (c *MockBeaconStateSetEffectiveBalanceForValidatorAtIndexCall) Do...
    method DoAndReturn (line 3635) | func (c *MockBeaconStateSetEffectiveBalanceForValidatorAtIndexCall) Do...
  type MockBeaconStateSetEpochParticipationForValidatorIndexCall (line 3654) | type MockBeaconStateSetEpochParticipationForValidatorIndexCall struct
    method Return (line 3659) | func (c *MockBeaconStateSetEpochParticipationForValidatorIndexCall) Re...
    method Do (line 3665) | func (c *MockBeaconStateSetEpochParticipationForValidatorIndexCall) Do...
    method DoAndReturn (line 3671) | func (c *MockBeaconStateSetEpochParticipationForValidatorIndexCall) Do...
  type MockBeaconStateSetEth1DataCall (line 3690) | type MockBeaconStateSetEth1DataCall struct
    method Return (line 3695) | func (c *MockBeaconStateSetEth1DataCall) Return() *MockBeaconStateSetE...
    method Do (line 3701) | func (c *MockBeaconStateSetEth1DataCall) Do(f func(*cltypes.Eth1Data))...
    method DoAndReturn (line 3707) | func (c *MockBeaconStateSetEth1DataCall) DoAndReturn(f func(*cltypes.E...
  type MockBeaconStateSetEth1DepositIndexCall (line 3726) | type MockBeaconStateSetEth1DepositIndexCall struct
    method Return (line 3731) | func (c *MockBeaconStateSetEth1DepositIndexCall) Return() *MockBeaconS...
    method Do (line 3737) | func (c *MockBeaconStateSetEth1DepositIndexCall) Do(f func(uint64)) *M...
    method DoAndReturn (line 3743) | func (c *MockBeaconStateSetEth1DepositIndexCall) DoAndReturn(f func(ui...
  type MockBeaconStateSetExitEpochForValidatorAtIndexCall (line 3762) | type MockBeaconStateSetExitEpochForValidatorAtIndexCall struct
    method Return (line 3767) | func (c *MockBeaconStateSetExitEpochForValidatorAtIndexCall) Return() ...
    method Do (line 3773) | func (c *MockBeaconStateSetExitEpochForValidatorAtIndexCall) Do(f func...
    method DoAndReturn (line 3779) | func (c *MockBeaconStateSetExitEpochForValidatorAtIndexCall) DoAndRetu...
  type MockBeaconStateSetFinalizedCheckpointCall (line 3798) | type MockBeaconStateSetFinalizedCheckpointCall struct
    method Return (line 3803) | func (c *MockBeaconStateSetFinalizedCheckpointCall) Return() *MockBeac...
    method Do (line 3809) | func (c *MockBeaconStateSetFinalizedCheckpointCall) Do(f func(solid.Ch...
    method DoAndReturn (line 3815) | func (c *MockBeaconStateSetFinalizedCheckpointCall) DoAndReturn(f func...
  type MockBeaconStateSetForkCall (line 3834) | type MockBeaconStateSetForkCall struct
    method Return (line 3839) | func (c *MockBeaconStateSetForkCall) Return() *MockBeaconStateSetForkC...
    method Do (line 3845) | func (c *MockBeaconStateSetForkCall) Do(f func(*cltypes.Fork)) *MockBe...
    method DoAndReturn (line 3851) | func (c *MockBeaconStateSetForkCall) DoAndReturn(f func(*cltypes.Fork)...
  type MockBeaconStateSetInactivityScoresCall (line 3870) | type MockBeaconStateSetInactivityScoresCall struct
    method Return (line 3875) | func (c *MockBeaconStateSetInactivityScoresCall) Return() *MockBeaconS...
    method Do (line 3881) | func (c *MockBeaconStateSetInactivityScoresCall) Do(f func([]uint64)) ...
    method DoAndReturn (line 3887) | func (c *MockBeaconStateSetInactivityScoresCall) DoAndReturn(f func([]...
  type MockBeaconStateSetJustificationBitsCall (line 3906) | type MockBeaconStateSetJustificationBitsCall struct
    method Return (line 3911) | func (c *MockBeaconStateSetJustificationBitsCall) Return() *MockBeacon...
    method Do (line 3917) | func (c *MockBeaconStateSetJustificationBitsCall) Do(f func(cltypes.Ju...
    method DoAndReturn (line 3923) | func (c *MockBeaconStateSetJustificationBitsCall) DoAndReturn(f func(c...
  type MockBeaconStateSetLatestBlockHeaderCall (line 3942) | type MockBeaconStateSetLatestBlockHeaderCall struct
    method Return (line 3947) | func (c *MockBeaconStateSetLatestBlockHeaderCall) Return() *MockBeacon...
    method Do (line 3953) | func (c *MockBeaconStateSetLatestBlockHeaderCall) Do(f func(*cltypes.B...
    method DoAndReturn (line 3959) | func (c *MockBeaconStateSetLatestBlockHeaderCall) DoAndReturn(f func(*...
  type MockBeaconStateSetLatestExecutionPayloadHeaderCall (line 3978) | type MockBeaconStateSetLatestExecutionPayloadHeaderCall struct
    method Return (line 3983) | func (c *MockBeaconStateSetLatestExecutionPayloadHeaderCall) Return() ...
    method Do (line 3989) | func (c *MockBeaconStateSetLatestExecutionPayloadHeaderCall) Do(f func...
    method DoAndReturn (line 3995) | func (c *MockBeaconStateSetLatestExecutionPayloadHeaderCall) DoAndRetu...
  type MockBeaconStateSetNextSyncCommitteeCall (line 4014) | type MockBeaconStateSetNextSyncCommitteeCall struct
    method Return (line 4019) | func (c *MockBeaconStateSetNextSyncCommitteeCall) Return() *MockBeacon...
    method Do (line 4025) | func (c *MockBeaconStateSetNextSyncCommitteeCall) Do(f func(*solid.Syn...
    method DoAndReturn (line 4031) | func (c *MockBeaconStateSetNextSyncCommitteeCall) DoAndReturn(f func(*...
  type MockBeaconStateSetNextWithdrawalIndexCall (line 4050) | type MockBeaconStateSetNextWithdrawalIndexCall struct
    method Return (line 4055) | func (c *MockBeaconStateSetNextWithdrawalIndexCall) Return() *MockBeac...
    method Do (line 4061) | func (c *MockBeaconStateSetNextWithdrawalIndexCall) Do(f func(uint64))...
    method DoAndReturn (line 4067) | func (c *MockBeaconStateSetNextWithdrawalIndexCall) DoAndReturn(f func...
  type MockBeaconStateSetNextWithdrawalValidatorIndexCall (line 4086) | type MockBeaconStateSetNextWithdrawalValidatorIndexCall struct
    method Return (line 4091) | func (c *MockBeaconStateSetNextWithdrawalValidatorIndexCall) Return() ...
    method Do (line 4097) | func (c *MockBeaconStateSetNextWithdrawalValidatorIndexCall) Do(f func...
    method DoAndReturn (line 4103) | func (c *MockBeaconStateSetNextWithdrawalValidatorIndexCall) DoAndRetu...
  type MockBeaconStateSetPendingConsolidationsCall (line 4122) | type MockBeaconStateSetPendingConsolidationsCall struct
    method Return (line 4127) | func (c *MockBeaconStateSetPendingConsolidationsCall) Return() *MockBe...
    method Do (line 4133) | func (c *MockBeaconStateSetPendingConsolidationsCall) Do(f func(*solid...
    method DoAndReturn (line 4139) | func (c *MockBeaconStateSetPendingConsolidationsCall) DoAndReturn(f fu...
  type MockBeaconStateSetPendingDepositsCall (line 4158) | type MockBeaconStateSetPendingDepositsCall struct
    method Return (line 4163) | func (c *MockBeaconStateSetPendingDepositsCall) Return() *MockBeaconSt...
    method Do (line 4169) | func (c *MockBeaconStateSetPendingDepositsCall) Do(f func(*solid.ListS...
    method DoAndReturn (line 4175) | func (c *MockBeaconStateSetPendingDepositsCall) DoAndReturn(f func(*so...
  type MockBeaconStateSetPendingPartialWithdrawalsCall (line 4194) | type MockBeaconStateSetPendingPartialWithdrawalsCall struct
    method Return (line 4199) | func (c *MockBeaconStateSetPendingPartialWithdrawalsCall) Return() *Mo...
    method Do (line 4205) | func (c *MockBeaconStateSetPendingPartialWithdrawalsCall) Do(f func(*s...
    method DoAndReturn (line 4211) | func (c *MockBeaconStateSetPendingPartialWithdrawalsCall) DoAndReturn(...
  type MockBeaconStateSetPreviousEpochAttestationsCall (line 4230) | type MockBeaconStateSetPreviousEpochAttestationsCall struct
    method Return (line 4235) | func (c *MockBeaconStateSetPreviousEpochAttestationsCall) Return() *Mo...
    method Do (line 4241) | func (c *MockBeaconStateSetPreviousEpochAttestationsCall) Do(f func(*s...
    method DoAndReturn (line 4247) | func (c *MockBeaconStateSetPreviousEpochAttestationsCall) DoAndReturn(...
  type MockBeaconStateSetPreviousEpochParticipationFlagsCall (line 4266) | type MockBeaconStateSetPreviousEpochParticipationFlagsCall struct
    method Return (line 4271) | func (c *MockBeaconStateSetPreviousEpochParticipationFlagsCall) Return...
    method Do (line 4277) | func (c *MockBeaconStateSetPreviousEpochParticipationFlagsCall) Do(f f...
    method DoAndReturn (line 4283) | func (c *MockBeaconStateSetPreviousEpochParticipationFlagsCall) DoAndR...
  type MockBeaconStateSetPreviousJustifiedCheckpointCall (line 4302) | type MockBeaconStateSetPreviousJustifiedCheckpointCall struct
    method Return (line 4307) | func (c *MockBeaconStateSetPreviousJustifiedCheckpointCall) Return() *...
    method Do (line 4313) | func (c *MockBeaconStateSetPreviousJustifiedCheckpointCall) Do(f func(...
    method DoAndReturn (line 4319) | func (c *MockBeaconStateSetPreviousJustifiedCheckpointCall) DoAndRetur...
  type MockBeaconStateSetPreviousStateRootCall (line 4338) | type MockBeaconStateSetPreviousStateRootCall struct
    method Return (line 4343) | func (c *MockBeaconStateSetPreviousStateRootCall) Return() *MockBeacon...
    method Do (line 4349) | func (c *MockBeaconStateSetPreviousStateRootCall) Do(f func(common.Has...
    method DoAndReturn (line 4355) | func (c *MockBeaconStateSetPreviousStateRootCall) DoAndReturn(f func(c...
  type MockBeaconStateSetProposerLookaheadCall (line 4374) | type MockBeaconStateSetProposerLookaheadCall struct
    method Return (line 4379) | func (c *MockBeaconStateSetProposerLookaheadCall) Return() *MockBeacon...
    method Do (line 4385) | func (c *MockBeaconStateSetProposerLookaheadCall) Do(f func(solid.Uint...
    method DoAndReturn (line 4391) | func (c *MockBeaconStateSetProposerLookaheadCall) DoAndReturn(f func(s...
  type MockBeaconStateSetRandaoMixAtCall (line 4410) | type MockBeaconStateSetRandaoMixAtCall struct
    method Return (line 4415) | func (c *MockBeaconStateSetRandaoMixAtCall) Return() *MockBeaconStateS...
    method Do (line 4421) | func (c *MockBeaconStateSetRandaoMixAtCall) Do(f func(int, common.Hash...
    method DoAndReturn (line 4427) | func (c *MockBeaconStateSetRandaoMixAtCall) DoAndReturn(f func(int, co...
  type MockBeaconStateSetSlashingSegmentAtCall (line 4446) | type MockBeaconStateSetSlashingSegmentAtCall struct
    method Return (line 4451) | func (c *MockBeaconStateSetSlashingSegmentAtCall) Return() *MockBeacon...
    method Do (line 4457) | func (c *MockBeaconStateSetSlashingSegmentAtCall) Do(f func(int, uint6...
    method DoAndReturn (line 4463) | func (c *MockBeaconStateSetSlashingSegmentAtCall) DoAndReturn(f func(i...
  type MockBeaconStateSetSlotCall (line 4482) | type MockBeaconStateSetSlotCall struct
    method Return (line 4487) | func (c *MockBeaconStateSetSlotCall) Return() *MockBeaconStateSetSlotC...
    method Do (line 4493) | func (c *MockBeaconStateSetSlotCall) Do(f func(uint64)) *MockBeaconSta...
    method DoAndReturn (line 4499) | func (c *MockBeaconStateSetSlotCall) DoAndReturn(f func(uint64)) *Mock...
  type MockBeaconStateSetStateRootAtCall (line 4518) | type MockBeaconStateSetStateRootAtCall struct
    method Return (line 4523) | func (c *MockBeaconStateSetStateRootAtCall) Return() *MockBeaconStateS...
    method Do (line 4529) | func (c *MockBeaconStateSetStateRootAtCall) Do(f func(int, common.Hash...
    method DoAndReturn (line 4535) | func (c *MockBeaconStateSetStateRootAtCall) DoAndReturn(f func(int, co...
  type MockBeaconStateSetValidatorAtIndexCall (line 4554) | type MockBeaconStateSetValidatorAtIndexCall struct
    method Return (line 4559) | func (c *MockBeaconStateSetValidatorAtIndexCall) Return() *MockBeaconS...
    method Do (line 4565) | func (c *MockBeaconStateSetValidatorAtIndexCall) Do(f func(int, solid....
    method DoAndReturn (line 4571) | func (c *MockBeaconStateSetValidatorAtIndexCall) DoAndReturn(f func(in...
  type MockBeaconStateSetValidatorBalanceCall (line 4592) | type MockBeaconStateSetValidatorBalanceCall struct
    method Return (line 4597) | func (c *MockBeaconStateSetValidatorBalanceCall) Return(arg0 error) *M...
    method Do (line 4603) | func (c *MockBeaconStateSetValidatorBalanceCall) Do(f func(int, uint64...
    method DoAndReturn (line 4609) | func (c *MockBeaconStateSetValidatorBalanceCall) DoAndReturn(f func(in...
  type MockBeaconStateSetValidatorInactivityScoreCall (line 4630) | type MockBeaconStateSetValidatorInactivityScoreCall struct
    method Return (line 4635) | func (c *MockBeaconStateSetValidatorInactivityScoreCall) Return(arg0 e...
    method Do (line 4641) | func (c *MockBeaconStateSetValidatorInactivityScoreCall) Do(f func(int...
    method DoAndReturn (line 4647) | func (c *MockBeaconStateSetValidatorInactivityScoreCall) DoAndReturn(f...
  type MockBeaconStateSetValidatorIsCurrentMatchingHeadAttesterCall (line 4668) | type MockBeaconStateSetValidatorIsCurrentMatchingHeadAttesterCall struct
    method Return (line 4673) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingHeadAttesterCall)...
    method Do (line 4679) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingHeadAttesterCall)...
    method DoAndReturn (line 4685) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingHeadAttesterCall)...
  type MockBeaconStateSetValidatorIsCurrentMatchingSourceAttesterCall (line 4706) | type MockBeaconStateSetValidatorIsCurrentMatchingSourceAttesterCall struct
    method Return (line 4711) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingSourceAttesterCal...
    method Do (line 4717) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingSourceAttesterCal...
    method DoAndReturn (line 4723) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingSourceAttesterCal...
  type MockBeaconStateSetValidatorIsCurrentMatchingTargetAttesterCall (line 4744) | type MockBeaconStateSetValidatorIsCurrentMatchingTargetAttesterCall struct
    method Return (line 4749) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingTargetAttesterCal...
    method Do (line 4755) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingTargetAttesterCal...
    method DoAndReturn (line 4761) | func (c *MockBeaconStateSetValidatorIsCurrentMatchingTargetAttesterCal...
  type MockBeaconStateSetValidatorIsPreviousMatchingHeadAttesterCall (line 4782) | type MockBeaconStateSetValidatorIsPreviousMatchingHeadAttesterCall struct
    method Return (line 4787) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingHeadAttesterCall...
    method Do (line 4793) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingHeadAttesterCall...
    method DoAndReturn (line 4799) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingHeadAttesterCall...
  type MockBeaconStateSetValidatorIsPreviousMatchingSourceAttesterCall (line 4820) | type MockBeaconStateSetValidatorIsPreviousMatchingSourceAttesterCall struct
    method Return (line 4825) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingSourceAttesterCa...
    method Do (line 4831) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingSourceAttesterCa...
    method DoAndReturn (line 4837) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingSourceAttesterCa...
  type MockBeaconStateSetValidatorIsPreviousMatchingTargetAttesterCall (line 4858) | type MockBeaconStateSetValidatorIsPreviousMatchingTargetAttesterCall struct
    method Return (line 4863) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingTargetAttesterCa...
    method Do (line 4869) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingTargetAttesterCa...
    method DoAndReturn (line 4875) | func (c *MockBeaconStateSetValidatorIsPreviousMatchingTargetAttesterCa...
  type MockBeaconStateSetValidatorMinCurrentInclusionDelayAttestationCall (line 4896) | type MockBeaconStateSetValidatorMinCurrentInclusionDelayAttestationCall ...
    method Return (line 4901) | func (c *MockBeaconStateSetValidatorMinCurrentInclusionDelayAttestatio...
    method Do (line 4907) | func (c *MockBeaconStateSetValidatorMinCurrentInclusionDelayAttestatio...
    method DoAndReturn (line 4913) | func (c *MockBeaconStateSetValidatorMinCurrentInclusionDelayAttestatio...
  type MockBeaconStateSetValidatorMinPreviousInclusionDelayAttestationCall (line 4934) | type MockBeaconStateSetValidatorMinPreviousInclusionDelayAttestationCall...
    method Return (line 4939) | func (c *MockBeaconStateSetValidatorMinPreviousInclusionDelayAttestati...
    method Do (line 4945) | func (c *MockBeaconStateSetValidatorMinPreviousInclusionDelayAttestati...
    method DoAndReturn (line 4951) | func (c *MockBeaconStateSetValidatorMinPreviousInclusionDelayAttestati...
  type MockBeaconStateSetValidatorSlashedCall (line 4972) | type MockBeaconStateSetValidatorSlashedCall struct
    method Return (line 4977) | func (c *MockBeaconStateSetValidatorSlashedCall) Return(arg0 error) *M...
    method Do (line 4983) | func (c *MockBeaconStateSetValidatorSlashedCall) Do(f func(int, bool) ...
    method DoAndReturn (line 4989) | func (c *MockBeaconStateSetValidatorSlashedCall) DoAndReturn(f func(in...
  type MockBeaconStateSetVersionCall (line 5008) | type MockBeaconStateSetVersionCall struct
    method Return (line 5013) | func (c *MockBeaconStateSetVersionCall) Return() *MockBeaconStateSetVe...
    method Do (line 5019) | func (c *MockBeaconStateSetVersionCall) Do(f func(clparams.StateVersio...
    method DoAndReturn (line 5025) | func (c *MockBeaconStateSetVersionCall) DoAndReturn(f func(clparams.St...
  type MockBeaconStateSetWithdrawableEpochForValidatorAtIndexCall (line 5046) | type MockBeaconStateSetWithdrawableEpochForValidatorAtIndexCall struct
    method Return (line 5051) | func (c *MockBeaconStateSetWithdrawableEpochForValidatorAtIndexCall) R...
    method Do (line 5057) | func (c *MockBeaconStateSetWithdrawableEpochForValidatorAtIndexCall) D...
    method DoAndReturn (line 5063) | func (c *MockBeaconStateSetWithdrawableEpochForValidatorAtIndexCall) D...
  type MockBeaconStateSetWithdrawalCredentialForValidatorAtIndexCall (line 5082) | type MockBeaconStateSetWithdrawalCredentialForValidatorAtIndexCall struct
    method Return (line 5087) | func (c *MockBeaconStateSetWithdrawalCredentialForValidatorAtIndexCall...
    method Do (line 5093) | func (c *MockBeaconStateSetWithdrawalCredentialForValidatorAtIndexCall...
    method DoAndReturn (line 5099) | func (c *MockBeaconStateSetWithdrawalCredentialForValidatorAtIndexCall...
  type MockBeaconStateSlashValidatorCall (line 5121) | type MockBeaconStateSlashValidatorCall struct
    method Return (line 5126) | func (c *MockBeaconStateSlashValidatorCall) Return(arg0 uint64, arg1 e...
    method Do (line 5132) | func (c *MockBeaconStateSlashValidatorCall) Do(f func(uint64, *uint64)...
    method DoAndReturn (line 5138) | func (c *MockBeaconStateSlashValidatorCall) DoAndReturn(f func(uint64,...
  type MockBeaconStateSlashingSegmentAtCall (line 5159) | type MockBeaconStateSlashingSegmentAtCall struct
    method Return (line 5164) | func (c *MockBeaconStateSlashingSegmentAtCall) Return(arg0 uint64) *Mo...
    method Do (line 5170) | func (c *MockBeaconStateSlashingSegmentAtCall) Do(f func(int) uint64) ...
    method DoAndReturn (line 5176) | func (c *MockBeaconStateSlashingSegmentAtCall) DoAndReturn(f func(int)...
  type MockBeaconStateSlotCall (line 5197) | type MockBeaconStateSlotCall struct
    method Return (line 5202) | func (c *MockBeaconStateSlotCall) Return(arg0 uint64) *MockBeaconState...
    method Do (line 5208) | func (c *MockBeaconStateSlotCall) Do(f func() uint64) *MockBeaconState...
    method DoAndReturn (line 5214) | func (c *MockBeaconStateSlotCall) DoAndReturn(f func() uint64) *MockBe...
  type MockBeaconStateStateRootsCall (line 5235) | type MockBeaconStateStateRootsCall struct
    method Return (line 5240) | func (c *MockBeaconStateStateRootsCall) Return(arg0 solid.HashVectorSS...
    method Do (line 5246) | func (c *MockBeaconStateStateRootsCall) Do(f func() solid.HashVectorSS...
    method DoAndReturn (line 5252) | func (c *MockBeaconStateStateRootsCall) DoAndReturn(f func() solid.Has...
  type MockBeaconStateSyncRewardsCall (line 5275) | type MockBeaconStateSyncRewardsCall struct
    method Return (line 5280) | func (c *MockBeaconStateSyncRewardsCall) Return(proposerReward, partic...
    method Do (line 5286) | func (c *MockBeaconStateSyncRewardsCall) Do(f func() (uint64, uint64, ...
    method DoAndReturn (line 5292) | func (c *MockBeaconStateSyncRewardsCall) DoAndReturn(f func() (uint64,...
  type MockBeaconStateUpgradeToAltairCall (line 5313) | type MockBeaconStateUpgradeToAltairCall struct
    method Return (line 5318) | func (c *MockBeaconStateUpgradeToAltairCall) Return(arg0 error) *MockB...
    method Do (line 5324) | func (c *MockBeaconStateUpgradeToAltairCall) Do(f func() error) *MockB...
    method DoAndReturn (line 5330) | func (c *MockBeaconStateUpgradeToAltairCall) DoAndReturn(f func() erro...
  type MockBeaconStateUpgradeToBellatrixCall (line 5351) | type MockBeaconStateUpgradeToBellatrixCall struct
    method Return (line 5356) | func (c *MockBeaconStateUpgradeToBellatrixCall) Return(arg0 error) *Mo...
    method Do (line 5362) | func (c *MockBeaconStateUpgradeToBellatrixCall) Do(f func() error) *Mo...
    method DoAndReturn (line 5368) | func (c *MockBeaconStateUpgradeToBellatrixCall) DoAndReturn(f func() e...
  type MockBeaconStateUpgradeToCapellaCall (line 5389) | type MockBeaconStateUpgradeToCapellaCall struct
    method Return (line 5394) | func (c *MockBeaconStateUpgradeToCapellaCall) Return(arg0 error) *Mock...
    method Do (line 5400) | func (c *MockBeaconStateUpgradeToCapellaCall) Do(f func() error) *Mock...
    method DoAndReturn (line 5406) | func (c *MockBeaconStateUpgradeToCapellaCall) DoAndReturn(f func() err...
  type MockBeaconStateUpgradeToDenebCall (line 5427) | type MockBeaconStateUpgradeToDenebCall struct
    method Return (line 5432) | func (c *MockBeaconStateUpgradeToDenebCall) Return(arg0 error) *MockBe...
    method Do (line 5438) | func (c *MockBeaconStateUpgradeToDenebCall) Do(f func() error) *MockBe...
    method DoAndReturn (line 5444) | func (c *MockBeaconStateUpgradeToDenebCall) DoAndReturn(f func() error...
  type MockBeaconStateUpgradeToElectraCall (line 5465) | type MockBeaconStateUpgradeToElectraCall struct
    method Return (line 5470) | func (c *MockBeaconStateUpgradeToElectraCall) Return(arg0 error) *Mock...
    method Do (line 5476) | func (c *MockBeaconStateUpgradeToElectraCall) Do(f func() error) *Mock...
    method DoAndReturn (line 5482) | func (c *MockBeaconStateUpgradeToElectraCall) DoAndReturn(f func() err...
  type MockBeaconStateUpgradeToFuluCall (line 5503) | type MockBeaconStateUpgradeToFuluCall struct
    method Return (line 5508) | func (c *MockBeaconStateUpgradeToFuluCall) Return(arg0 error) *MockBea...
    method Do (line 5514) | func (c *MockBeaconStateUpgradeToFuluCall) Do(f func() error) *MockBea...
    method DoAndReturn (line 5520) | func (c *MockBeaconStateUpgradeToFuluCall) DoAndReturn(f func() error)...
  type MockBeaconStateValidatorBalanceCall (line 5542) | type MockBeaconStateValidatorBalanceCall struct
    method Return (line 5547) | func (c *MockBeaconStateValidatorBalanceCall) Return(arg0 uint64, arg1...
    method Do (line 5553) | func (c *MockBeaconStateValidatorBalanceCall) Do(f func(int) (uint64, ...
    method DoAndReturn (line 5559) | func (c *MockBeaconStateValidatorBalanceCall) DoAndReturn(f func(int) ...
  type MockBeaconStateValidatorEffectiveBalanceCall (line 5581) | type MockBeaconStateValidatorEffectiveBalanceCall struct
    method Return (line 5586) | func (c *MockBeaconStateValidatorEffectiveBalanceCall) Return(arg0 uin...
    method Do (line 5592) | func (c *MockBeaconStateValidatorEffectiveBalanceCall) Do(f func(int) ...
    method DoAndReturn (line 5598) | func (c *MockBeaconStateValidatorEffectiveBalanceCall) DoAndReturn(f f...
  type MockBeaconStateValidatorExitEpochCall (line 5620) | type MockBeaconStateValidatorExitEpochCall struct
    method Return (line 5625) | func (c *MockBeaconStateValidatorExitEpochCall) Return(arg0 uint64, ar...
    method Do (line 5631) | func (c *MockBeaconStateValidatorExitEpochCall) Do(f func(int) (uint64...
    method DoAndReturn (line 5637) | func (c *MockBeaconStateValidatorExitEpochCall) DoAndReturn(f func(int...
  type MockBeaconStateValidatorForValidatorIndexCall (line 5659) | type MockBeaconStateValidatorForValidatorIndexCall struct
    method Return (line 5664) | func (c *MockBeaconStateValidatorForValidatorIndexCall) Return(arg0 so...
    method Do (line 5670) | func (c *MockBeaconStateValidatorForValidatorIndexCall) Do(f func(int)...
    method DoAndReturn (line 5676) | func (c *MockBeaconStateValidatorForValidatorIndexCall) DoAndReturn(f ...
  type MockBeaconStateValidatorInactivityScoreCall (line 5698) | type MockBeaconStateValidatorInactivityScoreCall struct
    method Return (line 5703) | func (c *MockBeaconStateValidatorInactivityScoreCall) Return(arg0 uint...
    method Do (line 5709) | func (c *MockBeaconStateValidatorInactivityScoreCall) Do(f func(int) (...
    method DoAndReturn (line 5715) | func (c *MockBeaconStateValidatorInactivityScoreCall) DoAndReturn(f fu...
  type MockBeaconStateValidatorIndexByPubkeyCall (line 5737) | type MockBeaconStateValidatorIndexByPubkeyCall struct
    method Return (line 5742) | func (c *MockBeaconStateValidatorIndexByPubkeyCall) Return(arg0 uint64...
    method Do (line 5748) | func (c *MockBeaconStateValidatorIndexByPubkeyCall) Do(f func([48]byte...
    method DoAndReturn (line 5754) | func (c *MockBeaconStateValidatorIndexByPubkeyCall) DoAndReturn(f func...
  type MockBeaconStateValidatorIsCurrentMatchingHeadAttesterCall (line 5776) | type MockBeaconStateValidatorIsCurrentMatchingHeadAttesterCall struct
    method Return (line 5781) | func (c *MockBeaconStateValidatorIsCurrentMatchingHeadAttesterCall) Re...
    method Do (line 5787) | func (c *MockBeaconStateValidatorIsCurrentMatchingHeadAttesterCall) Do...
    method DoAndReturn (line 5793) | func (c *MockBeaconStateValidatorIsCurrentMatchingHeadAttesterCall) Do...
  type MockBeaconStateValidatorIsCurrentMatchingSourceAttesterCall (line 5815) | type MockBeaconStateValidatorIsCurrentMatchingSourceAttesterCall struct
    method Return (line 5820) | func (c *MockBeaconStateValidatorIsCurrentMatchingSourceAttesterCall) ...
    method Do (line 5826) | func (c *MockBeaconStateValidatorIsCurrentMatchingSourceAttesterCall) ...
    method DoAndReturn (line 5832) | func (c *MockBeaconStateValidatorIsCurrentMatchingSourceAttesterCall) ...
  type MockBeaconStateValidatorIsCurrentMatchingTargetAttesterCall (line 5854) | type MockBeaconStateValidatorIsCurrentMatchingTargetAttesterCall struct
    method Return (line 5859) | func (c *MockBeaconStateValidatorIsCurrentMatchingTargetAttesterCall) ...
    method Do (line 5865) | func (c *MockBeaconStateValidatorIsCurrentMatchingTargetAttesterCall) ...
    method DoAndReturn (line 5871) | func (c *MockBeaconStateValidatorIsCurrentMatchingTargetAttesterCall) ...
  type MockBeaconStateValidatorIsPreviousMatchingHeadAttesterCall (line 5893) | type MockBeaconStateValidatorIsPreviousMatchingHeadAttesterCall struct
    method Return (line 5898) | func (c *MockBeaconStateValidatorIsPreviousMatchingHeadAttesterCall) R...
    method Do (line 5904) | func (c *MockBeaconStateValidatorIsPreviousMatchingHeadAttesterCall) D...
    method DoAndReturn (line 5910) | func (c *MockBeaconStateValidatorIsPreviousMatchingHeadAttesterCall) D...
  type MockBeaconStateValidatorIsPreviousMatchingSourceAttesterCall (line 5932) | type MockBeaconStateValidatorIsPreviousMatchingSourceAttesterCall struct
    method Return (line 5937) | func (c *MockBeaconStateValidatorIsPreviousMatchingSourceAttesterCall)...
    method Do (line 5943) | func (c *MockBeaconStateValidatorIsPreviousMatchingSourceAttesterCall)...
    method DoAndReturn (line 5949) | func (c *MockBeaconStateValidatorIsPreviousMatchingSourceAttesterCall)...
  type MockBeaconStateValidatorIsPreviousMatchingTargetAttesterCall (line 5971) | type MockBeaconStateValidatorIsPreviousMatchingTargetAttesterCall struct
    method Return (line 5976) | func (c *MockBeaconStateValidatorIsPreviousMatchingTargetAttesterCall)...
    method Do (line 5982) | func (c *MockBeaconStateValidatorIsPreviousMatchingTargetAttesterCall)...
    method DoAndReturn (line 5988) | func (c *MockBeaconStateValidatorIsPreviousMatchingTargetAttesterCall)...
  type MockBeaconStateValidatorLengthCall (line 6009) | type MockBeaconStateValidatorLengthCall struct
    method Return (line 6014) | func (c *MockBeaconStateValidatorLengthCall) Return(arg0 int) *MockBea...
    method Do (line 6020) | func (c *MockBeaconStateValidatorLengthCall) Do(f func() int) *MockBea...
    method DoAndReturn (line 6026) | func (c *MockBeaconStateValidatorLengthCall) DoAndReturn(f func() int)...
  type MockBeaconStateValidatorMinCurrentInclusionDelayAttestationCall (line 6048) | type MockBeaconStateValidatorMinCurrentInclusionDelayAttestationCall struct
    method Return (line 6053) | func (c *MockBeaconStateValidatorMinCurrentInclusionDelayAttestationCa...
    method Do (line 6059) | func (c *MockBeaconStateValidatorMinCurrentInclusionDelayAttestationCa...
    method DoAndReturn (line 6065) | func (c *MockBeaconStateValidatorMinCurrentInclusionDelayAttestationCa...
  type MockBeaconStateValidatorMinPreviousInclusionDelayAttestationCall (line 6087) | type MockBeaconStateValidatorMinPreviousInclusionDelayAttestationCall st...
    method Return (line 6092) | func (c *MockBeaconStateValidatorMinPreviousInclusionDelayAttestationC...
    method Do (line 6098) | func (c *MockBeaconStateValidatorMinPreviousInclusionDelayAttestationC...
    method DoAndReturn (line 6104) | func (c *MockBeaconStateValidatorMinPreviousInclusionDelayAttestationC...
  type MockBeaconStateValidatorSetCall (line 6125) | type MockBeaconStateValidatorSetCall struct
    method Return (line 6130) | func (c *MockBeaconStateValidatorSetCall) Return(arg0 *solid.Validator...
    method Do (line 6136) | func (c *MockBeaconStateValidatorSetCall) Do(f func() *solid.Validator...
    method DoAndReturn (line 6142) | func (c *MockBeaconStateValidatorSetCall) DoAndReturn(f func() *solid....
  type MockBeaconStateValidatorWithdrawableEpochCall (line 6164) | type MockBeaconStateValidatorWithdrawableEpochCall struct
    method Return (line 6169) | func (c *MockBeaconStateValidatorWithdrawableEpochCall) Return(arg0 ui...
    method Do (line 6175) | func (c *MockBeaconStateValidatorWithdrawableEpochCall) Do(f func(int)...
    method DoAndReturn (line 6181) | func (c *MockBeaconStateValidatorWithdrawableEpochCall) DoAndReturn(f ...
  type MockBeaconStateVersionCall (line 6202) | type MockBeaconStateVersionCall struct
    method Return (line 6207) | func (c *MockBeaconStateVersionCall) Return(arg0 clparams.StateVersion...
    method Do (line 6213) | func (c *MockBeaconStateVersionCall) Do(f func() clparams.StateVersion...
    method DoAndReturn (line 6219) | func (c *MockBeaconStateVersionCall) DoAndReturn(f func() clparams.Sta...

FILE: cl/abstract/mock_services/beacon_state_mutator_mock.go
  type MockBeaconStateMutator (line 23) | type MockBeaconStateMutator struct
    method EXPECT (line 42) | func (m *MockBeaconStateMutator) EXPECT() *MockBeaconStateMutatorMockR...
    method AddCurrentEpochAtteastation (line 47) | func (m *MockBeaconStateMutator) AddCurrentEpochAtteastation(attestati...
    method AddCurrentEpochParticipationFlags (line 83) | func (m *MockBeaconStateMutator) AddCurrentEpochParticipationFlags(fla...
    method AddEth1DataVote (line 119) | func (m *MockBeaconStateMutator) AddEth1DataVote(vote *cltypes.Eth1Dat...
    method AddHistoricalRoot (line 155) | func (m *MockBeaconStateMutator) AddHistoricalRoot(root common.Hash) {
    method AddHistoricalSummary (line 191) | func (m *MockBeaconStateMutator) AddHistoricalSummary(summary *cltypes...
    method AddInactivityScore (line 227) | func (m *MockBeaconStateMutator) AddInactivityScore(score uint64) {
    method AddPreviousEpochAttestation (line 263) | func (m *MockBeaconStateMutator) AddPreviousEpochAttestation(attestati...
    method AddPreviousEpochParticipationAt (line 299) | func (m *MockBeaconStateMutator) AddPreviousEpochParticipationAt(index...
    method AddPreviousEpochParticipationFlags (line 335) | func (m *MockBeaconStateMutator) AddPreviousEpochParticipationFlags(fl...
    method AddValidator (line 371) | func (m *MockBeaconStateMutator) AddValidator(validator solid.Validato...
    method AppendPendingConsolidation (line 407) | func (m *MockBeaconStateMutator) AppendPendingConsolidation(consolidat...
    method AppendPendingDeposit (line 443) | func (m *MockBeaconStateMutator) AppendPendingDeposit(deposit *solid.P...
    method AppendPendingPartialWithdrawal (line 479) | func (m *MockBeaconStateMutator) AppendPendingPartialWithdrawal(withdr...
    method AppendValidator (line 515) | func (m *MockBeaconStateMutator) AppendValidator(in solid.Validator) {
    method ResetCurrentEpochAttestations (line 551) | func (m *MockBeaconStateMutator) ResetCurrentEpochAttestations() {
    method ResetEpochParticipation (line 587) | func (m *MockBeaconStateMutator) ResetEpochParticipation() {
    method ResetEth1DataVotes (line 623) | func (m *MockBeaconStateMutator) ResetEth1DataVotes() {
    method ResetHistoricalSummaries (line 659) | func (m *MockBeaconStateMutator) ResetHistoricalSummaries() {
    method ResetPreviousEpochAttestations (line 695) | func (m *MockBeaconStateMutator) ResetPreviousEpochAttestations() {
    method SetActivationEligibilityEpochForValidatorAtIndex (line 731) | func (m *MockBeaconStateMutator) SetActivationEligibilityEpochForValid...
    method SetActivationEpochForValidatorAtIndex (line 767) | func (m *MockBeaconStateMutator) SetActivationEpochForValidatorAtIndex...
    method SetBlockRootAt (line 803) | func (m *MockBeaconStateMutator) SetBlockRootAt(index int, root common...
    method SetConsolidationBalanceToConsume (line 839) | func (m *MockBeaconStateMutator) SetConsolidationBalanceToConsume(arg0...
    method SetCurrentEpochParticipationFlags (line 875) | func (m *MockBeaconStateMutator) SetCurrentEpochParticipationFlags(fla...
    method SetCurrentJustifiedCheckpoint (line 911) | func (m *MockBeaconStateMutator) SetCurrentJustifiedCheckpoint(current...
    method SetCurrentSyncCommittee (line 947) | func (m *MockBeaconStateMutator) SetCurrentSyncCommittee(currentSyncCo...
    method SetDepositBalanceToConsume (line 983) | func (m *MockBeaconStateMutator) SetDepositBalanceToConsume(arg0 uint6...
    method SetDepositRequestsStartIndex (line 1019) | func (m *MockBeaconStateMutator) SetDepositRequestsStartIndex(arg0 uin...
    method SetEarlistConsolidationEpoch (line 1055) | func (m *MockBeaconStateMutator) SetEarlistConsolidationEpoch(arg0 uin...
    method SetEffectiveBalanceForValidatorAtIndex (line 1091) | func (m *MockBeaconStateMutator) SetEffectiveBalanceForValidatorAtInde...
    method SetEpochParticipationForValidatorIndex (line 1127) | func (m *MockBeaconStateMutator) SetEpochParticipationForValidatorInde...
    method SetEth1Data (line 1163) | func (m *MockBeaconStateMutator) SetEth1Data(eth1Data *cltypes.Eth1Dat...
    method SetEth1DepositIndex (line 1199) | func (m *MockBeaconStateMutator) SetEth1DepositIndex(eth1DepositIndex ...
    method SetExitEpochForValidatorAtIndex (line 1235) | func (m *MockBeaconStateMutator) SetExitEpochForValidatorAtIndex(index...
    method SetFinalizedCheckpoint (line 1271) | func (m *MockBeaconStateMutator) SetFinalizedCheckpoint(finalizedCheck...
    method SetFork (line 1307) | func (m *MockBeaconStateMutator) SetFork(fork *cltypes.Fork) {
    method SetInactivityScores (line 1343) | func (m *MockBeaconStateMutator) SetInactivityScores(scores []uint64) {
    method SetJustificationBits (line 1379) | func (m *MockBeaconStateMutator) SetJustificationBits(justificationBit...
    method SetLatestBlockHeader (line 1415) | func (m *MockBeaconStateMutator) SetLatestBlockHeader(header *cltypes....
    method SetLatestExecutionPayloadHeader (line 1451) | func (m *MockBeaconStateMutator) SetLatestExecutionPayloadHeader(heade...
    method SetNextSyncCommittee (line 1487) | func (m *MockBeaconStateMutator) SetNextSyncCommittee(nextSyncCommitte...
    method SetNextWithdrawalIndex (line 1523) | func (m *MockBeaconStateMutator) SetNextWithdrawalIndex(index uint64) {
    method SetNextWithdrawalValidatorIndex (line 1559) | func (m *MockBeaconStateMutator) SetNextWithdrawalValidatorIndex(index...
    method SetPendingConsolidations (line 1595) | func (m *MockBeaconStateMutator) SetPendingConsolidations(consolidatio...
    method SetPendingDeposits (line 1631) | func (m *MockBeaconStateMutator) SetPendingDeposits(arg0 *solid.ListSS...
    method SetPendingPartialWithdrawals (line 1667) | func (m *MockBeaconStateMutator) SetPendingPartialWithdrawals(arg0 *so...
    method SetPreviousEpochAttestations (line 1703) | func (m *MockBeaconStateMutator) SetPreviousEpochAttestations(attestat...
    method SetPreviousEpochParticipationFlags (line 1739) | func (m *MockBeaconStateMutator) SetPreviousEpochParticipationFlags(fl...
    method SetPreviousJustifiedCheckpoint (line 1775) | func (m *MockBeaconStateMutator) SetPreviousJustifiedCheckpoint(previo...
    method SetProposerLookahead (line 1811) | func (m *MockBeaconStateMutator) SetProposerLookahead(proposerLookahea...
    method SetRandaoMixAt (line 1847) | func (m *MockBeaconStateMutator) SetRandaoMixAt(index int, mix common....
    method SetSlashingSegmentAt (line 1883) | func (m *MockBeaconStateMutator) SetSlashingSegmentAt(index int, segme...
    method SetSlot (line 1919) | func (m *MockBeaconStateMutator) SetSlot(slot uint64) {
    method SetStateRootAt (line 1955) | func (m *MockBeaconStateMutator) SetStateRootAt(index int, root common...
    method SetValidatorAtIndex (line 1991) | func (m *MockBeaconStateMutator) SetValidatorAtIndex(index int, valida...
    method SetValidatorBalance (line 2027) | func (m *MockBeaconStateMutator) SetValidatorBalance(index int, balanc...
    method SetValidatorInactivityScore (line 2065) | func (m *MockBeaconStateMutator) SetValidatorInactivityScore(index int...
    method SetValidatorIsCurrentMatchingHeadAttester (line 2103) | func (m *MockBeaconStateMutator) SetValidatorIsCurrentMatchingHeadAtte...
    method SetValidatorIsCurrentMatchingSourceAttester (line 2141) | func (m *MockBeaconStateMutator) SetValidatorIsCurrentMatchingSourceAt...
    method SetValidatorIsCurrentMatchingTargetAttester (line 2179) | func (m *MockBeaconStateMutator) SetValidatorIsCurrentMatchingTargetAt...
    method SetValidatorIsPreviousMatchingHeadAttester (line 2217) | func (m *MockBeaconStateMutator) SetValidatorIsPreviousMatchingHeadAtt...
    method SetValidatorIsPreviousMatchingSourceAttester (line 2255) | func (m *MockBeaconStateMutator) SetValidatorIsPreviousMatchingSourceA...
    method SetValidatorIsPreviousMatchingTargetAttester (line 2293) | func (m *MockBeaconStateMutator) SetValidatorIsPreviousMatchingTargetA...
    method SetValidatorMinCurrentInclusionDelayAttestation (line 2331) | func (m *MockBeaconStateMutator) SetValidatorMinCurrentInclusionDelayA...
    method SetValidatorMinPreviousInclusionDelayAttestation (line 2369) | func (m *MockBeaconStateMutator) SetValidatorMinPreviousInclusionDelay...
    method SetValidatorSlashed (line 2407) | func (m *MockBeaconStateMutator) SetValidatorSlashed(index int, slashe...
    method SetVersion (line 2445) | func (m *MockBeaconStateMutator) SetVersion(version clparams.StateVers...
    method SetWithdrawableEpochForValidatorAtIndex (line 2481) | func (m *MockBeaconStateMutator) SetWithdrawableEpochForValidatorAtInd...
    method SetWithdrawalCredentialForValidatorAtIndex (line 2519) | func (m *MockBeaconStateMutator) SetWithdrawalCredentialForValidatorAt...
  type MockBeaconStateMutatorMockRecorder (line 30) | type MockBeaconStateMutatorMockRecorder struct
    method AddCurrentEpochAtteastation (line 53) | func (mr *MockBeaconStateMutatorMockRecorder) AddCurrentEpochAtteastat...
    method AddCurrentEpochParticipationFlags (line 89) | func (mr *MockBeaconStateMutatorMockRecorder) AddCurrentEpochParticipa...
    method AddEth1DataVote (line 125) | func (mr *MockBeaconStateMutatorMockRecorder) AddEth1DataVote(vote any...
    method AddHistoricalRoot (line 161) | func (mr *MockBeaconStateMutatorMockRecorder) AddHistoricalRoot(root a...
    method AddHistoricalSummary (line 197) | func (mr *MockBeaconStateMutatorMockRecorder) AddHistoricalSummary(sum...
    method AddInactivityScore (line 233) | func (mr *MockBeaconStateMutatorMockRecorder) AddInactivityScore(score...
    method AddPreviousEpochAttestation (line 269) | func (mr *MockBeaconStateMutatorMockRecorder) AddPreviousEpochAttestat...
    method AddPreviousEpochParticipationAt (line 305) | func (mr *MockBeaconStateMutatorMockRecorder) AddPreviousEpochParticip...
    method AddPreviousEpochParticipationFlags (line 341) | func (mr *MockBeaconStateMutatorMockRecorder) AddPreviousEpochParticip...
    method AddValidator (line 377) | func (mr *MockBeaconStateMutatorMockRecorder) AddValidator(validator, ...
    method AppendPendingConsolidation (line 413) | func (mr *MockBeaconStateMutatorMockRecorder) AppendPendingConsolidati...
    method AppendPendingDeposit (line 449) | func (mr *MockBeaconStateMutatorMockRecorder) AppendPendingDeposit(dep...
    method AppendPendingPartialWithdrawal (line 485) | func (mr *MockBeaconStateMutatorMockRecorder) AppendPendingPartialWith...
    method AppendValidator (line 521) | func (mr *MockBeaconStateMutatorMockRecorder) AppendValidator(in any) ...
    method ResetCurrentEpochAttestations (line 557) | func (mr *MockBeaconStateMutatorMockRecorder) ResetCurrentEpochAttesta...
    method ResetEpochParticipation (line 593) | func (mr *MockBeaconStateMutatorMockRecorder) ResetEpochParticipation(...
    method ResetEth1DataVotes (line 629) | func (mr *MockBeaconStateMutatorMockRecorder) ResetEth1DataVotes() *Mo...
    method ResetHistoricalSummaries (line 665) | func (mr *MockBeaconStateMutatorMockRecorder) ResetHistoricalSummaries...
    method ResetPreviousEpochAttestations (line 701) | func (mr *MockBeaconStateMutatorMockRecorder) ResetPreviousEpochAttest...
    method SetActivationEligibilityEpochForValidatorAtIndex (line 737) | func (mr *MockBeaconStateMutatorMockRecorder) SetActivationEligibility...
    method SetActivationEpochForValidatorAtIndex (line 773) | func (mr *MockBeaconStateMutatorMockRecorder) SetActivationEpochForVal...
    method SetBlockRootAt (line 809) | func (mr *MockBeaconStateMutatorMockRecorder) SetBlockRootAt(index, ro...
    method SetConsolidationBalanceToConsume (line 845) | func (mr *MockBeaconStateMutatorMockRecorder) SetConsolidationBalanceT...
    method SetCurrentEpochParticipationFlags (line 881) | func (mr *MockBeaconStateMutatorMockRecorder) SetCurrentEpochParticipa...
    method SetCurrentJustifiedCheckpoint (line 917) | func (mr *MockBeaconStateMutatorMockRecorder) SetCurrentJustifiedCheck...
    method SetCurrentSyncCommittee (line 953) | func (mr *MockBeaconStateMutatorMockRecorder) SetCurrentSyncCommittee(...
    method SetDepositBalanceToConsume (line 989) | func (mr *MockBeaconStateMutatorMockRecorder) SetDepositBalanceToConsu...
    method SetDepositRequestsStartIndex (line 1025) | func (mr *MockBeaconStateMutatorMockRecorder) SetDepositRequestsStartI...
    method SetEarlistConsolidationEpoch (line 1061) | func (mr *MockBeaconStateMutatorMockRecorder) SetEarlistConsolidationE...
    method SetEffectiveBalanceForValidatorAtIndex (line 1097) | func (mr *MockBeaconStateMutatorMockRecorder) SetEffectiveBalanceForVa...
    method SetEpochParticipationForValidatorIndex (line 1133) | func (mr *MockBeaconStateMutatorMockRecorder) SetEpochParticipationFor...
    method SetEth1Data (line 1169) | func (mr *MockBeaconStateMutatorMockRecorder) SetEth1Data(eth1Data any...
    method SetEth1DepositIndex (line 1205) | func (mr *MockBeaconStateMutatorMockRecorder) SetEth1DepositIndex(eth1...
    method SetExitEpochForValidatorAtIndex (line 1241) | func (mr *MockBeaconStateMutatorMockRecorder) SetExitEpochForValidator...
    method SetFinalizedCheckpoint (line 1277) | func (mr *MockBeaconStateMutatorMockRecorder) SetFinalizedCheckpoint(f...
    method SetFork (line 1313) | func (mr *MockBeaconStateMutatorMockRecorder) SetFork(fork any) *MockB...
    method SetInactivityScores (line 1349) | func (mr *MockBeaconStateMutatorMockRecorder) SetInactivityScores(scor...
    method SetJustificationBits (line 1385) | func (mr *MockBeaconStateMutatorMockRecorder) SetJustificationBits(jus...
    method SetLatestBlockHeader (line 1421) | func (mr *MockBeaconStateMutatorMockRecorder) SetLatestBlockHeader(hea...
    method SetLatestExecutionPayloadHeader (line 1457) | func (mr *MockBeaconStateMutatorMockRecorder) SetLatestExecutionPayloa...
    method SetNextSyncCommittee (line 1493) | func (mr *MockBeaconStateMutatorMockRecorder) SetNextSyncCommittee(nex...
    method SetNextWithdrawalIndex (line 1529) | func (mr *MockBeaconStateMutatorMockRecorder) SetNextWithdrawalIndex(i...
    method SetNextWithdrawalValidatorIndex (line 1565) | func (mr *MockBeaconStateMutatorMockRecorder) SetNextWithdrawalValidat...
    method SetPendingConsolidations (line 1601) | func (mr *MockBeaconStateMutatorMockRecorder) SetPendingConsolidations...
    method SetPendingDeposits (line 1637) | func (mr *MockBeaconStateMutatorMockRecorder) SetPendingDeposits(arg0 ...
    method SetPendingPartialWithdrawals (line 1673) | func (mr *MockBeaconStateMutatorMockRecorder) SetPendingPartialWithdra...
    method SetPreviousEpochAttestations (line 1709) | func (mr *MockBeaconStateMutatorMockRecorder) SetPreviousEpochAttestat...
    method SetPreviousEpochParticipationFlags (line 1745) | func (mr *MockBeaconStateMutatorMockRecorder) SetPreviousEpochParticip...
    method SetPreviousJustifiedCheckpoint (line 1781) | func (mr *MockBeaconStateMutatorMockRecorder) SetPreviousJustifiedChec...
    method SetProposerLookahead (line 1817) | func (mr *MockBeaconStateMutatorMockRecorder) SetProposerLookahead(pro...
    method SetRandaoMixAt (line 1853) | func (mr *MockBeaconStateMutatorMockRecorder) SetRandaoMixAt(index, mi...
    method SetSlashingSegmentAt (line 1889) | func (mr *MockBeaconStateMutatorMockRecorder) SetSlashingSegmentAt(ind...
    method SetSlot (line 1925) | func (mr *MockBeaconStateMutatorMockRecorder) SetSlot(slot any) *MockB...
    method SetStateRootAt (line 1961) | func (mr *MockBeaconStateMutatorMockRecorder) SetStateRootAt(index, ro...
    method SetValidatorAtIndex (line 1997) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorAtIndex(inde...
    method SetValidatorBalance (line 2035) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorBalance(inde...
    method SetValidatorInactivityScore (line 2073) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorInactivitySc...
    method SetValidatorIsCurrentMatchingHeadAttester (line 2111) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsCurrentMat...
    method SetValidatorIsCurrentMatchingSourceAttester (line 2149) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsCurrentMat...
    method SetValidatorIsCurrentMatchingTargetAttester (line 2187) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsCurrentMat...
    method SetValidatorIsPreviousMatchingHeadAttester (line 2225) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsPreviousMa...
    method SetValidatorIsPreviousMatchingSourceAttester (line 2263) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsPreviousMa...
    method SetValidatorIsPreviousMatchingTargetAttester (line 2301) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorIsPreviousMa...
    method SetValidatorMinCurrentInclusionDelayAttestation (line 2339) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorMinCurrentIn...
    method SetValidatorMinPreviousInclusionDelayAttestation (line 2377) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorMinPreviousI...
    method SetValidatorSlashed (line 2415) | func (mr *MockBeaconStateMutatorMockRecorder) SetValidatorSlashed(inde...
    method SetVersion (line 2451) | func (mr *MockBeaconStateMutatorMockRecorder) SetVersion(version any) ...
    method SetWithdrawableEpochForValidatorAtIndex (line 2489) | func (mr *MockBeaconStateMutatorMockRecorder) SetWithdrawableEpochForV...
    method SetWithdrawalCredentialForValidatorAtIndex (line 2525) | func (mr *MockBeaconStateMutatorMockRecorder) SetWithdrawalCredentialF...
  function NewMockBeaconStateMutator (line 35) | func NewMockBeaconStateMutator(ctrl *gomock.Controller) *MockBeaconState...
  type MockBeaconStateMutatorAddCurrentEpochAtteastationCall (line 60) | type MockBeaconStateMutatorAddCurrentEpochAtteastationCall struct
    method Return (line 65) | func (c *MockBeaconStateMutatorAddCurrentEpochAtteastationCall) Return...
    method Do (line 71) | func (c *MockBeaconStateMutatorAddCurrentEpochAtteastationCall) Do(f f...
    method DoAndReturn (line 77) | func (c *MockBeaconStateMutatorAddCurrentEpochAtteastationCall) DoAndR...
  type MockBeaconStateMutatorAddCurrentEpochParticipationFlagsCall (line 96) | type MockBeaconStateMutatorAddCurrentEpochParticipationFlagsCall struct
    method Return (line 101) | func (c *MockBeaconStateMutatorAddCurrentEpochParticipationFlagsCall) ...
    method Do (line 107) | func (c *MockBeaconStateMutatorAddCurrentEpochParticipationFlagsCall) ...
    method DoAndReturn (line 113) | func (c *MockBeaconStateMutatorAddCurrentEpochParticipationFlagsCall) ...
  type MockBeaconStateMutatorAddEth1DataVoteCall (line 132) | type MockBeaconStateMutatorAddEth1DataVoteCall struct
    method Return (line 137) | func (c *MockBeaconStateMutatorAddEth1DataVoteCall) Return() *MockBeac...
    method Do (line 143) | func (c *MockBeaconStateMutatorAddEth1DataVoteCall) Do(f func(*cltypes...
    method DoAndReturn (line 149) | func (c *MockBeaconStateMutatorAddEth1DataVoteCall) DoAndReturn(f func...
  type MockBeaconStateMutatorAddHistoricalRootCall (line 168) | type MockBeaconStateMutatorAddHistoricalRootCall struct
    method Return (line 173) | func (c *MockBeaconStateMutatorAddHistoricalRootCall) Return() *MockBe...
    method Do (line 179) | func (c *MockBeaconStateMutatorAddHistoricalRootCall) Do(f func(common...
    method DoAndReturn (line 185) | func (c *MockBeaconStateMutatorAddHistoricalRootCall) DoAndReturn(f fu...
  type MockBeaconStateMutatorAddHistoricalSummaryCall (line 204) | type MockBeaconStateMutatorAddHistoricalSummaryCall struct
    method Return (line 209) | func (c *MockBeaconStateMutatorAddHistoricalSummaryCall) Return() *Moc...
    method Do (line 215) | func (c *MockBeaconStateMutatorAddHistoricalSummaryCall) Do(f func(*cl...
    method DoAndReturn (line 221) | func (c *MockBeaconStateMutatorAddHistoricalSummaryCall) DoAndReturn(f...
  type MockBeaconStateMutatorAddInactivityScoreCall (line 240) | type MockBeaconStateMutatorAddInactivityScoreCall struct
    method Return (line 245) | func (c *MockBeaconStateMutatorAddInactivityScoreCall) Return() *MockB...
    method Do (line 251) | func (c *MockBeaconStateMutatorAddInactivityScoreCall) Do(f func(uint6...
    method DoAndReturn (line 257) | func (c *MockBeaconStateMutatorAddInactivityScoreCall) DoAndReturn(f f...
  type MockBeaconStateMutatorAddPreviousEpochAttestationCall (line 276) | type MockBeaconStateMutatorAddPreviousEpochAttestationCall struct
    method Return (line 281) | func (c *MockBeaconStateMutatorAddPreviousEpochAttestationCall) Return...
    method Do (line 287) | func (c *MockBeaconStateMutatorAddPreviousEpochAttestationCall) Do(f f...
    method DoAndReturn (line 293) | func (c *MockBeaconStateMutatorAddPreviousEpochAttestationCall) DoAndR...
  type MockBeaconStateMutatorAddPreviousEpochParticipationAtCall (line 312) | type MockBeaconStateMutatorAddPreviousEpochParticipationAtCall struct
    method Return (line 317) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationAtCall) Re...
    method Do (line 323) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationAtCall) Do...
    method DoAndReturn (line 329) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationAtCall) Do...
  type MockBeaconStateMutatorAddPreviousEpochParticipationFlagsCall (line 348) | type MockBeaconStateMutatorAddPreviousEpochParticipationFlagsCall struct
    method Return (line 353) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationFlagsCall)...
    method Do (line 359) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationFlagsCall)...
    method DoAndReturn (line 365) | func (c *MockBeaconStateMutatorAddPreviousEpochParticipationFlagsCall)...
  type MockBeaconStateMutatorAddValidatorCall (line 384) | type MockBeaconStateMutatorAddValidatorCall struct
    method Return (line 389) | func (c *MockBeaconStateMutatorAddValidatorCall) Return() *MockBeaconS...
    method Do (line 395) | func (c *MockBeaconStateMutatorAddValidatorCall) Do(f func(solid.Valid...
    method DoAndReturn (line 401) | func (c *MockBeaconStateMutatorAddValidatorCall) DoAndReturn(f func(so...
  type MockBeaconStateMutatorAppendPendingConsolidationCall (line 420) | type MockBeaconStateMutatorAppendPendingConsolidationCall struct
    method Return (line 425) | func (c *MockBeaconStateMutatorAppendPendingConsolidationCall) Return(...
    method Do (line 431) | func (c *MockBeaconStateMutatorAppendPendingConsolidationCall) Do(f fu...
    method DoAndReturn (line 437) | func (c *MockBeaconStateMutatorAppendPendingConsolidationCall) DoAndRe...
  type MockBeaconStateMutatorAppendPendingDepositCall (line 456) | type MockBeaconStateMutatorAppendPendingDepositCall struct
    method Return (line 461) | func (c *MockBeaconStateMutatorAppendPendingDepositCall) Return() *Moc...
    method Do (line 467) | func (c *MockBeaconStateMutatorAppendPendingDepositCall) Do(f func(*so...
    method DoAndReturn (line 473) | func (c *MockBeaconStateMutatorAppendPendingDepositCall) DoAndReturn(f...
  type MockBeaconStateMutatorAppendPendingPartialWithdrawalCall (line 492) | type MockBeaconStateMutatorAppendPendingPartialWithdrawalCall struct
    method Return (line 497) | func (c *MockBeaconStateMutatorAppendPendingPartialWithdrawalCall) Ret...
    method Do (line 503) | func (c *MockBeaconStateMutatorAppendPendingPartialWithdrawalCall) Do(...
    method DoAndReturn (line 509) | func (c *MockBeaconStateMutatorAppendPendingPartialWithdrawalCall) DoA...
  type MockBeaconStateMutatorAppendValidatorCall (line 528) | type MockBeaconStateMutatorAppendValidatorCall struct
    method Return (line 533) | func (c *MockBeaconStateMutatorAppendValidatorCall) Return() *MockBeac...
    method Do (line 539) | func (c *MockBeaconStateMutatorAppendValidatorCall) Do(f func(solid.Va...
    method DoAndReturn (line 545) | func (c *MockBeaconStateMutatorAppendValidatorCall) DoAndReturn(f func...
  type MockBeaconStateMutatorResetCurrentEpochAttestationsCall (line 564) | type MockBeaconStateMutatorResetCurrentEpochAttestationsCall struct
    method Return (line 569) | func (c *MockBeaconStateMutatorResetCurrentEpochAttestationsCall) Retu...
    method Do (line 575) | func (c *MockBeaconStateMutatorResetCurrentEpochAttestationsCall) Do(f...
    method DoAndReturn (line 581) | func (c *MockBeaconStateMutatorResetCurrentEpochAttestationsCall) DoAn...
  type MockBeaconStateMutatorResetEpochParticipationCall (line 600) | type MockBeaconStateMutatorResetEpochParticipationCall struct
    method Return (line 605) | func (c *MockBeaconStateMutatorResetEpochParticipationCall) Return() *...
    method Do (line 611) | func (c *MockBeaconStateMutatorResetEpochParticipationCall) Do(f func(...
    method DoAndReturn (line 617) | func (c *MockBeaconStateMutatorResetEpochParticipationCall) DoAndRetur...
  type MockBeaconStateMutatorResetEth1DataVotesCall (line 636) | type MockBeaconStateMutatorResetEth1DataVotesCall struct
    method Return (line 641) | func (c *MockBeaconStateMutatorResetEth1DataVotesCall) Return() *MockB...
    method Do (line 647) | func (c *MockBeaconStateMutatorResetEth1DataVotesCall) Do(f func()) *M...
    method DoAndReturn (line 653) | func (c *MockBeaconStateMutatorResetEth1DataVotesCall) DoAndReturn(f f...
  type MockBeaconStateMutatorResetHistoricalSummariesCall (line 672) | type MockBeaconStateMutatorResetHistoricalSummariesCall struct
    method Return (line 677) | func (c *MockBeaconStateMutatorResetHistoricalSummariesCall) Return() ...
    method Do (line 683) | func (c *MockBeaconStateMutatorResetHistoricalSummariesCall) Do(f func...
    method DoAndReturn (line 689) | func (c *MockBeaconStateMutatorResetHistoricalSummariesCall) DoAndRetu...
  type MockBeaconStateMutatorResetPreviousEpochAttestationsCall (line 708) | type MockBeaconStateMutatorResetPreviousEpochAttestationsCall struct
    method Return (line 713) | func (c *MockBeaconStateMutatorResetPreviousEpochAttestationsCall) Ret...
    method Do (line 719) | func (c *MockBeaconStateMutatorResetPreviousEpochAttestationsCall) Do(...
    method DoAndReturn (line 725) | func (c *MockBeaconStateMutatorResetPreviousEpochAttestationsCall) DoA...
  type MockBeaconStateMutatorSetActivationEligibilityEpochForValidatorAtIndexCall (line 744) | type MockBeaconStateMutatorSetActivationEligibilityEpochForValidatorAtIn...
    method Return (line 749) | func (c *MockBeaconStateMutatorSetActivationEligibilityEpochForValidat...
    method Do (line 755) | func (c *MockBeaconStateMutatorSetActivationEligibilityEpochForValidat...
    method DoAndReturn (line 761) | func (c *MockBeaconStateMutatorSetActivationEligibilityEpochForValidat...
  type MockBeaconStateMutatorSetActivationEpochForValidatorAtIndexCall (line 780) | type MockBeaconStateMutatorSetActivationEpochForValidatorAtIndexCall struct
    method Return (line 785) | func (c *MockBeaconStateMutatorSetActivationEpochForValidatorAtIndexCa...
    method Do (line 791) | func (c *MockBeaconStateMutatorSetActivationEpochForValidatorAtIndexCa...
    method DoAndReturn (line 797) | func (c *MockBeaconStateMutatorSetActivationEpochForValidatorAtIndexCa...
  type MockBeaconStateMutatorSetBlockRootAtCall (line 816) | type MockBeaconStateMutatorSetBlockRootAtCall struct
    method Return (line 821) | func (c *MockBeaconStateMutatorSetBlockRootAtCall) Return() *MockBeaco...
    method Do (line 827) | func (c *MockBeaconStateMutatorSetBlockRootAtCall) Do(f func(int, comm...
    method DoAndReturn (line 833) | func (c *MockBeaconStateMutatorSetBlockRootAtCall) DoAndReturn(f func(...
  type MockBeaconStateMutatorSetConsolidationBalanceToConsumeCall (line 852) | type MockBeaconStateMutatorSetConsolidationBalanceToConsumeCall struct
    method Return (line 857) | func (c *MockBeaconStateMutatorSetConsolidationBalanceToConsumeCall) R...
    method Do (line 863) | func (c *MockBeaconStateMutatorSetConsolidationBalanceToConsumeCall) D...
    method DoAndReturn (line 869) | func (c *MockBeaconStateMutatorSetConsolidationBalanceToConsumeCall) D...
  type MockBeaconStateMutatorSetCurrentEpochParticipationFlagsCall (line 888) | type MockBeaconStateMutatorSetCurrentEpochParticipationFlagsCall struct
    method Return (line 893) | func (c *MockBeaconStateMutatorSetCurrentEpochParticipationFlagsCall) ...
    method Do (line 899) | func (c *MockBeaconStateMutatorSetCurrentEpochParticipationFlagsCall) ...
    method DoAndReturn (line 905) | func (c *MockBeaconStateMutatorSetCurrentEpochParticipationFlagsCall) ...
  type MockBeaconStateMutatorSetCurrentJustifiedCheckpointCall (line 924) | type MockBeaconStateMutatorSetCurrentJustifiedCheckpointCall struct
    method Return (line 929) | func (c *MockBeaconStateMutatorSetCurrentJustifiedCheckpointCall) Retu...
    method Do (line 935) | func (c *MockBeaconStateMutatorSetCurrentJustifiedCheckpointCall) Do(f...
    method DoAndReturn (line 941) | func (c *MockBeaconStateMutatorSetCurrentJustifiedCheckpointCall) DoAn...
  type MockBeaconStateMutatorSetCurrentSyncCommitteeCall (line 960) | type MockBeaconStateMutatorSetCurrentSyncCommitteeCall struct
    method Return (line 965) | func (c *MockBeaconStateMutatorSetCurrentSyncCommitteeCall) Return() *...
    method Do (line 971) | func (c *MockBeaconStateMutatorSetCurrentSyncCommitteeCall) Do(f func(...
    method DoAndReturn (line 977) | func (c *MockBeaconStateMutatorSetCurrentSyncCommitteeCall) DoAndRetur...
  type MockBeaconStateMutatorSetDepositBalanceToConsumeCall (line 996) | type MockBeaconStateMutatorSetDepositBalanceToConsumeCall struct
    method Return (line 1001) | func (c *MockBeaconStateMutatorSetDepositBalanceToConsumeCall) Return(...
    method Do (line 1007) | func (c *MockBeaconStateMutatorSetDepositBalanceToConsumeCall) Do(f fu...
    method DoAndReturn (line 1013) | func (c *MockBeaconStateMutatorSetDepositBalanceToConsumeCall) DoAndRe...
  type MockBeaconStateMutatorSetDepositRequestsStartIndexCall (line 1032) | type MockBeaconStateMutatorSetDepositRequestsStartIndexCall struct
    method Return (line 1037) | func (c *MockBeaconStateMutatorSetDepositRequestsStartIndexCall) Retur...
    method Do (line 1043) | func (c *MockBeaconStateMutatorSetDepositRequestsStartIndexCall) Do(f ...
    method DoAndReturn (line 1049) | func (c *MockBeaconStateMutatorSetDepositRequestsStartIndexCall) DoAnd...
  type MockBeaconStateMutatorSetEarlistConsolidationEpochCall (line 1068) | type MockBeaconStateMutatorSetEarlistConsolidationEpochCall struct
    method Return (line 1073) | func (c *MockBeaconStateMutatorSetEarlistConsolidationEpochCall) Retur...
    method Do (line 1079) | func (c *MockBeaconStateMutatorSetEarlistConsolidationEpochCall) Do(f ...
    method DoAndReturn (line 1085) | func (c *MockBeaconStateMutatorSetEarlistConsolidationEpochCall) DoAnd...
  type MockBeaconStateMutatorSetEffectiveBalanceForValidatorAtIndexCall (line 1104) | type MockBeaconStateMutatorSetEffectiveBalanceForValidatorAtIndexCall st...
    method Return (line 1109) | func (c *MockBeaconStateMutatorSetEffectiveBalanceForValidatorAtIndexC...
    method Do (line 1115) | func (c *MockBeaconStateMutatorSetEffectiveBalanceForValidatorAtIndexC...
    method DoAndReturn (line 1121) | func (c *MockBeaconStateMutatorSetEffectiveBalanceForValidatorAtIndexC...
  type MockBeaconStateMutatorSetEpochParticipationForValidatorIndexCall (line 1140) | type MockBeaconStateMutatorSetEpochParticipationForValidatorIndexCall st...
    method Return (line 1145) | func (c *MockBeaconStateMutatorSetEpochParticipationForValidatorIndexC...
    method Do (line 1151) | func (c *MockBeaconStateMutatorSetEpochParticipationForValidatorIndexC...
    method DoAndReturn (line 1157) | func (c *MockBeaconStateMutatorSetEpochParticipationForValidatorIndexC...
  type MockBeaconStateMutatorSetEth1DataCall (line 1176) | type MockBeaconStateMutatorSetEth1DataCall struct
    method Return (line 1181) | func (c *MockBeaconStateMutatorSetEth1DataCall) Return() *MockBeaconSt...
    method Do (line 1187) | func (c *MockBeaconStateMutatorSetEth1DataCall) Do(f func(*cltypes.Eth...
    method DoAndReturn (line 1193) | func (c *MockBeaconStateMutatorSetEth1DataCall) DoAndReturn(f func(*cl...
  type MockBeaconStateMutatorSetEth1DepositIndexCall (line 1212) | type MockBeaconStateMutatorSetEth1DepositIndexCall struct
    method Return (line 1217) | func (c *MockBeaconStateMutatorSetEth1DepositIndexCall) Return() *Mock...
    method Do (line 1223) | func (c *MockBeaconStateMutatorSetEth1DepositIndexCall) Do(f func(uint...
    method DoAndReturn (line 1229) | func (c *MockBeaconStateMutatorSetEth1DepositIndexCall) DoAndReturn(f ...
  type MockBeaconStateMutatorSetExitEpochForValidatorAtIndexCall (line 1248) | type MockBeaconStateMutatorSetExitEpochForValidatorAtIndexCall struct
    method Return (line 1253) | func (c *MockBeaconStateMutatorSetExitEpochForValidatorAtIndexCall) Re...
    method Do (line 1259) | func (c *MockBeaconStateMutatorSetExitEpochForValidatorAtIndexCall) Do...
    method DoAndReturn (line 1265) | func (c *MockBeaconStateMutatorSetExitEpochForValidatorAtIndexCall) Do...
  type MockBeaconStateMutatorSetFinalizedCheckpointCall (line 1284) | type MockBeaconStateMutatorSetFinalizedCheckpointCall struct
    method Return (line 1289) | func (c *MockBeaconStateMutatorSetFinalizedCheckpointCall) Return() *M...
    method Do (line 1295) | func (c *MockBeaconStateMutatorSetFinalizedCheckpointCall) Do(f func(s...
    method DoAndReturn (line 1301) | func (c *MockBeaconStateMutatorSetFinalizedCheckpointCall) DoAndReturn...
  type MockBeaconStateMutatorSetForkCall (line 1320) | type MockBeaconStateMutatorSetForkCall struct
    method Return (line 1325) | func (c *MockBeaconStateMutatorSetForkCall) Return() *MockBeaconStateM...
    method Do (line 1331) | func (c *MockBeaconStateMutatorSetForkCall) Do(f func(*cltypes.Fork)) ...
    method DoAndReturn (line 1337) | func (c *MockBeaconStateMutatorSetForkCall) DoAndReturn(f func(*cltype...
  type MockBeaconStateMutatorSetInactivityScoresCall (line 1356) | type MockBeaconStateMutatorSetInactivityScoresCall struct
    method Return (line 1361) | func (c *MockBeaconStateMutatorSetInactivityScoresCall) Return() *Mock...
    method Do (line 1367) | func (c *MockBeaconStateMutatorSetInactivityScoresCall) Do(f func([]ui...
    method DoAndReturn (line 1373) | func (c *MockBeaconStateMutatorSetInactivityScoresCall) DoAndReturn(f ...
  type MockBeaconStateMutatorSetJustificationBitsCall (line 1392) | type MockBeaconStateMutatorSetJustificationBitsCall struct
    method Return (line 1397) | func (c *MockBeaconStateMutatorSetJustificationBitsCall) Return() *Moc...
    method Do (line 1403) | func (c *MockBeaconStateMutatorSetJustificationBitsCall) Do(f func(clt...
    method DoAndReturn (line 1409) | func (c *MockBeaconStateMutatorSetJustificationBitsCall) DoAndReturn(f...
  type MockBeaconStateMutatorSetLatestBlockHeaderCall (line 1428) | type MockBeaconStateMutatorSetLatestBlockHeaderCall struct
    method Return (line 1433) | func (c *MockBeaconStateMutatorSetLatestBlockHeaderCall) Return() *Moc...
    method Do (line 1439) | func (c *MockBeaconStateMutatorSetLatestBlockHeaderCall) Do(f func(*cl...
    method DoAndReturn (line 1445) | func (c *MockBeaconStateMutatorSetLatestBlockHeaderCall) DoAndReturn(f...
  type MockBeaconStateMutatorSetLatestExecutionPayloadHeaderCall (line 1464) | type MockBeaconStateMutatorSetLatestExecutionPayloadHeaderCall struct
    method Return (line 1469) | func (c *MockBeaconStateMutatorSetLatestExecutionPayloadHeaderCall) Re...
    method Do (line 1475) | func (c *MockBeaconStateMutatorSetLatestExecutionPayloadHeaderCall) Do...
    method DoAndReturn (line 1481) | func (c *MockBeaconStateMutatorSetLatestExecutionPayloadHeaderCall) Do...
  type MockBeaconStateMutatorSetNextSyncCommitteeCall (line 1500) | type MockBeaconStateMutatorSetNextSyncCommitteeCall struct
    method Return (line 1505) | func (c *MockBeaconStateMutatorSetNextSyncCommitteeCall) Return() *Moc...
    method Do (line 1511) | func (c *MockBeaconStateMutatorSetNextSyncCommitteeCall) Do(f func(*so...
    method DoAndReturn (line 1517) | func (c *MockBeaconStateMutatorSetNextSyncCommitteeCall) DoAndReturn(f...
  type MockBeaconStateMutatorSetNextWithdrawalIndexCall (line 1536) | type MockBeaconStateMutatorSetNextWithdrawalIndexCall struct
    method Return (line 1541) | func (c *MockBeaconStateMutatorSetNextWithdrawalIndexCall) Return() *M...
    method Do (line 1547) | func (c *MockBeaconStateMutatorSetNextWithdrawalIndexCall) Do(f func(u...
    method DoAndReturn (line 1553) | func (c *MockBeaconStateMutatorSetNextWithdrawalIndexCall) DoAndReturn...
  type MockBeaconStateMutatorSetNextWithdrawalValidatorIndexCall (line 1572) | type MockBeaconStateMutatorSetNextWithdrawalValidatorIndexCall struct
    method Return (line 1577) | func (c *MockBeaconStateMutatorSetNextWithdrawalValidatorIndexCall) Re...
    method Do (line 1583) | func (c *MockBeaconStateMutatorSetNextWithdrawalValidatorIndexCall) Do...
    method DoAndReturn (line 1589) | func (c *MockBeaconStateMutatorSetNextWithdrawalValidatorIndexCall) Do...
  type MockBeaconStateMutatorSetPendingConsolidationsCall (line 1608) | type MockBeaconStateMutatorSetPendingConsolidationsCall struct
    method Return (line 1613) | func (c *MockBeaconStateMutatorSetPendingConsolidationsCall) Return() ...
    method Do (line 1619) | func (c *MockBeaconStateMutatorSetPendingConsolidationsCall) Do(f func...
    method DoAndReturn (line 1625) | func (c *MockBeaconStateMutatorSetPendingConsolidationsCall) DoAndRetu...
  type MockBeaconStateMutatorSetPendingDepositsCall (line 1644) | type MockBeaconStateMutatorSetPendingDepositsCall struct
    method Return (line 1649) | func (c *MockBeaconStateMutatorSetPendingDepositsCall) Return() *MockB...
    method Do (line 1655) | func (c *MockBeaconStateMutatorSetPendingDepositsCall) Do(f func(*soli...
    method DoAndReturn (line 1661) | func (c *MockBeaconStateMutatorSetPendingDepositsCall) DoAndReturn(f f...
  type MockBeaconStateMutatorSetPendingPartialWithdrawalsCall (line 1680) | type MockBeaconStateMutatorSetPendingPartialWithdrawalsCall struct
    method Return (line 1685) | func (c *MockBeaconStateMutatorSetPendingPartialWithdrawalsCall) Retur...
    method Do (line 1691) | func (c *MockBeaconStateMutatorSetPendingPartialWithdrawalsCall) Do(f ...
    method DoAndReturn (line 1697) | func (c *MockBeaconStateMutatorSetPendingPartialWithdrawalsCall) DoAnd...
  type MockBeaconStateMutatorSetPreviousEpochAttestationsCall (line 1716) | type MockBeaconStateMutatorSetPreviousEpochAttestationsCall struct
    method Return (line 1721) | func (c *MockBeaconStateMutatorSetPreviousEpochAttestationsCall) Retur...
    method Do (line 1727) | func (c *MockBeaconStateMutatorSetPreviousEpochAttestationsCall) Do(f ...
    method DoAndReturn (line 1733) | func (c *MockBeaconStateMutatorSetPreviousEpochAttestationsCall) DoAnd...
  type MockBeaconStateMutatorSetPreviousEpochParticipationFlagsCall (line 1752) | type MockBeaconStateMutatorSetPreviousEpochParticipationFlagsCall struct
    method Return (line 1757) | func (c *MockBeaconStateMutatorSetPreviousEpochParticipationFlagsCall)...
    method Do (line 1763) | func (c *MockBeaconStateMutatorSetPreviousEpochParticipationFlagsCall)...
    method DoAndReturn (line 1769) | func (c *MockBeaconStateMutatorSetPreviousEpochParticipationFlagsCall)...
  type MockBeaconStateMutatorSetPreviousJustifiedCheckpointCall (line 1788) | type MockBeaconStateMutatorSetPreviousJustifiedCheckpointCall struct
    method Return (line 1793) | func (c *MockBeaconStateMutatorSetPreviousJustifiedCheckpointCall) Ret...
    method Do (line 1799) | func (c *MockBeaconStateMutatorSetPreviousJustifiedCheckpointCall) Do(...
    method DoAndReturn (line 1805) | func (c *MockBeaconStateMutatorSetPreviousJustifiedCheckpointCall) DoA...
  type MockBeaconStateMutatorSetProposerLookaheadCall (line 1824) | type MockBeaconStateMutatorSetProposerLookaheadCall struct
    method Return (line 1829) | func (c *MockBeaconStateMutatorSetProposerLookaheadCall) Return() *Moc...
    method Do (line 1835) | func (c *MockBeaconStateMutatorSetProposerLookaheadCall) Do(f func(sol...
    method DoAndReturn (line 1841) | func (c *MockBeaconStateMutatorSetProposerLookaheadCall) DoAndReturn(f...
  type MockBeaconStateMutatorSetRandaoMixAtCall (line 1860) | type MockBeaconStateMutatorSetRandaoMixAtCall struct
    method Return (line 1865) | func (c *MockBeaconStateMutatorSetRandaoMixAtCall) Return() *MockBeaco...
    method Do (line 1871) | func (c *MockBeaconStateMutatorSetRandaoMixAtCall) Do(f func(int, comm...
    method DoAndReturn (line 1877) | func (c *MockBeaconStateMutatorSetRandaoMixAtCall) DoAndReturn(f func(...
  type MockBeaconStateMutatorSetSlashingSegmentAtCall (line 1896) | type MockBeaconStateMutatorSetSlashingSegmentAtCall struct
    method Return (line 1901) | func (c *MockBeaconStateMutatorSetSlashingSegmentAtCall) Return() *Moc...
    method Do (line 1907) | func (c *MockBeaconStateMutatorSetSlashingSegmentAtCall) Do(f func(int...
    method DoAndReturn (line 1913) | func (c *MockBeaconStateMutatorSetSlashingSegmentAtCall) DoAndReturn(f...
  type MockBeaconStateMutatorSetSlotCall (line 1932) | type MockBeaconStateMutatorSetSlotCall struct
    method Return (line 1937) | func (c *MockBeaconStateMutatorSetSlotCall) Return() *MockBeaconStateM...
    method Do (line 1943) | func (c *MockBeaconStateMutatorSetSlotCall) Do(f func(uint64)) *MockBe...
    method DoAndReturn (line 1949) | func (c *MockBeaconStateMutatorSetSlotCall) DoAndReturn(f func(uint64)...
  type MockBeaconStateMutatorSetStateRootAtCall (line 1968) | type MockBeaconStateMutatorSetStateRootAtCall struct
    method Return (line 1973) | func (c *MockBeaconStateMutatorSetStateRootAtCall) Return() *MockBeaco...
    method Do (line 1979) | func (c *MockBeaconStateMutatorSetStateRootAtCall) Do(f func(int, comm...
    method DoAndReturn (line 1985) | func (c *MockBeaconStateMutatorSetStateRootAtCall) DoAndReturn(f func(...
  type MockBeaconStateMutatorSetValidatorAtIndexCall (line 2004) | type MockBeaconStateMutatorSetValidatorAtIndexCall struct
    method Return (line 2009) | func (c *MockBeaconStateMutatorSetValidatorAtIndexCall) Return() *Mock...
    method Do (line 2015) | func (c *MockBeaconStateMutatorSetValidatorAtIndexCall) Do(f func(int,...
    method DoAndReturn (line 2021) | func (c *MockBeaconStateMutatorSetValidatorAtIndexCall) DoAndReturn(f ...
  type MockBeaconStateMutatorSetValidatorBalanceCall (line 2042) | type MockBeaconStateMutatorSetValidatorBalanceCall struct
    method Return (line 2047) | func (c *MockBeaconStateMutatorSetValidatorBalanceCall) Return(arg0 er...
    method Do (line 2053) | func (c *MockBeaconStateMutatorSetValidatorBalanceCall) Do(f func(int,...
    method DoAndReturn (line 2059) | func (c *MockBeaconStateMutatorSetValidatorBalanceCall) DoAndReturn(f ...
  type MockBeaconStateMutatorSetValidatorInactivityScoreCall (line 2080) | type MockBeaconStateMutatorSetValidatorInactivityScoreCall struct
    method Return (line 2085) | func (c *MockBeaconStateMutatorSetValidatorInactivityScoreCall) Return...
    method Do (line 2091) | func (c *MockBeaconStateMutatorSetValidatorInactivityScoreCall) Do(f f...
    method DoAndReturn (line 2097) | func (c *MockBeaconStateMutatorSetValidatorInactivityScoreCall) DoAndR...
  type MockBeaconStateMutatorSetValidatorIsCurrentMatchingHeadAttesterCall (line 2118) | type MockBeaconStateMutatorSetValidatorIsCurrentMatchingHeadAttesterCall...
    method Return (line 2123) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingHeadAttest...
    method Do (line 2129) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingHeadAttest...
    method DoAndReturn (line 2135) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingHeadAttest...
  type MockBeaconStateMutatorSetValidatorIsCurrentMatchingSourceAttesterCall (line 2156) | type MockBeaconStateMutatorSetValidatorIsCurrentMatchingSourceAttesterCa...
    method Return (line 2161) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingSourceAtte...
    method Do (line 2167) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingSourceAtte...
    method DoAndReturn (line 2173) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingSourceAtte...
  type MockBeaconStateMutatorSetValidatorIsCurrentMatchingTargetAttesterCall (line 2194) | type MockBeaconStateMutatorSetValidatorIsCurrentMatchingTargetAttesterCa...
    method Return (line 2199) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingTargetAtte...
    method Do (line 2205) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingTargetAtte...
    method DoAndReturn (line 2211) | func (c *MockBeaconStateMutatorSetValidatorIsCurrentMatchingTargetAtte...
  type MockBeaconStateMutatorSetValidatorIsPreviousMatchingHeadAttesterCall (line 2232) | type MockBeaconStateMutatorSetValidatorIsPreviousMatchingHeadAttesterCal...
    method Return (line 2237) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingHeadAttes...
    method Do (line 2243) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingHeadAttes...
    method DoAndReturn (line 2249) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingHeadAttes...
  type MockBeaconStateMutatorSetValidatorIsPreviousMatchingSourceAttesterCall (line 2270) | type MockBeaconStateMutatorSetValidatorIsPreviousMatchingSourceAttesterC...
    method Return (line 2275) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingSourceAtt...
    method Do (line 2281) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingSourceAtt...
    method DoAndReturn (line 2287) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingSourceAtt...
  type MockBeaconStateMutatorSetValidatorIsPreviousMatchingTargetAttesterCall (line 2308) | type MockBeaconStateMutatorSetValidatorIsPreviousMatchingTargetAttesterC...
    method Return (line 2313) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingTargetAtt...
    method Do (line 2319) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingTargetAtt...
    method DoAndReturn (line 2325) | func (c *MockBeaconStateMutatorSetValidatorIsPreviousMatchingTargetAtt...
  type MockBeaconStateMutatorSetValidatorMinCurrentInclusionDelayAttestationCall (line 2346) | type MockBeaconStateMutatorSetValidatorMinCurrentInclusionDelayAttestati...
    method Return (line 2351) | func (c *MockBeaconStateMutatorSetValidatorMinCurrentInclusionDelayAtt...
    method Do (line 2357) | func (c *MockBeaconStateMutatorSetValidatorMinCurrentInclusionDelayAtt...
    method DoAndReturn (line 2363) | func (c *MockBeaconStateMutatorSetValidatorMinCurrentInclusionDelayAtt...
  type MockBeaconStateMutatorSetValidatorMinPreviousInclusionDelayAttestationCall (line 2384) | type MockBeaconStateMutatorSetValidatorMinPreviousInclusionDelayAttestat...
    method Return (line 2389) | func (c *MockBeaconStateMutatorSetValidatorMinPreviousInclusionDelayAt...
    method Do (line 2395) | func (c *MockBeaconStateMutatorSetValidatorMinPreviousInclusionDelayAt...
    method DoAndReturn (line 2401) | func (c *MockBeaconStateMutatorSetValidatorMinPreviousInclusionDelayAt...
  type MockBeaconStateMutatorSetValidatorSlashedCall (line 2422) | type MockBeaconStateMutatorSetValidatorSlashedCall struct
    method Return (line 2427) | func (c *MockBeaconStateMutatorSetValidatorSlashedCall) Return(arg0 er...
    method Do (line 2433) | func (c *MockBeaconStateMutatorSetValidatorSlashedCall) Do(f func(int,...
    method DoAndReturn (line 2439) | func (c *MockBeaconStateMutatorSetValidatorSlashedCall) DoAndReturn(f ...
  type MockBeaconStateMutatorSetVersionCall (line 2458) | type MockBeaconStateMutatorSetVersionCall struct
    method Return (line 2463) | func (c *MockBeaconStateMutatorSetVersionCall) Return() *MockBeaconSta...
    method Do (line 2469) | func (c *MockBeaconStateMutatorSetVersionCall) Do(f func(clparams.Stat...
    method DoAndReturn (line 2475) | func (c *MockBeaconStateMutatorSetVersionCall) DoAndReturn(f func(clpa...
  type MockBeaconStateMutatorSetWithdrawableEpochForValidatorAtIndexCall (line 2496) | type MockBeaconStateMutatorSetWithdrawableEpochForValidatorAtIndexCall s...
    method Return (line 2501) | func (c *MockBeaconStateMutatorSetWithdrawableEpochForValidatorAtIndex...
    method Do (line 2507) | func (c *MockBeaconStateMutatorSetWithdrawableEpochForValidatorAtIndex...
    method DoAndReturn (line 2513) | func (c *MockBeaconStateMutatorSetWithdrawableEpochForValidatorAtIndex...
  type MockBeaconStateMutatorSetWithdrawalCredentialForValidatorAtIndexCall (line 2532) | type MockBeaconStateMutatorSetWithdrawalCredentialForValidatorAtIndexCal...
    method Return (line 2537) | func (c *MockBeaconStateMutatorSetWithdrawalCredentialForValidatorAtIn...
    method Do (line 2543) | func (c *MockBeaconStateMutatorSetWithdrawalCredentialForValidatorAtIn...
    method DoAndReturn (line 2549) | func (c *MockBeaconStateMutatorSetWithdrawalCredentialForValidatorAtIn...

FILE: cl/abstract/mock_services/beacon_state_reader_mock.go
  type MockBeaconStateReader (line 22) | type MockBeaconStateReader struct
    method EXPECT (line 41) | func (m *MockBeaconStateReader) EXPECT() *MockBeaconStateReaderMockRec...
    method CommitteeCount (line 46) | func (m *MockBeaconStateReader) CommitteeCount(epoch uint64) uint64 {
    method GenesisValidatorsRoot (line 84) | func (m *MockBeaconStateReader) GenesisValidatorsRoot() common.Hash {
    method GetBeaconProposerIndexForSlot (line 122) | func (m *MockBeaconStateReader) GetBeaconProposerIndexForSlot(slot uin...
    method GetDomain (line 161) | func (m *MockBeaconStateReader) GetDomain(domainType [4]byte, epoch ui...
    method ValidatorForValidatorIndex (line 200) | func (m *MockBeaconStateReader) ValidatorForValidatorIndex(index int) ...
    method ValidatorPublicKey (line 239) | func (m *MockBeaconStateReader) ValidatorPublicKey(index int) (common....
    method Version (line 278) | func (m *MockBeaconStateReader) Version() clparams.StateVersion {
  type MockBeaconStateReaderMockRecorder (line 29) | type MockBeaconStateReaderMockRecorder struct
    method CommitteeCount (line 54) | func (mr *MockBeaconStateReaderMockRecorder) CommitteeCount(epoch any)...
    method GenesisValidatorsRoot (line 92) | func (mr *MockBeaconStateReaderMockRecorder) GenesisValidatorsRoot() *...
    method GetBeaconProposerIndexForSlot (line 131) | func (mr *MockBeaconStateReaderMockRecorder) GetBeaconProposerIndexFor...
    method GetDomain (line 170) | func (mr *MockBeaconStateReaderMockRecorder) GetDomain(domainType, epo...
    method ValidatorForValidatorIndex (line 209) | func (mr *MockBeaconStateReaderMockRecorder) ValidatorForValidatorInde...
    method ValidatorPublicKey (line 248) | func (mr *MockBeaconStateReaderMockRecorder) ValidatorPublicKey(index ...
    method Version (line 286) | func (mr *MockBeaconStateReaderMockRecorder) Version() *MockBeaconStat...
  function NewMockBeaconStateReader (line 34) | func NewMockBeaconStateReader(ctrl *gomock.Controller) *MockBeaconStateR...
  type MockBeaconStateReaderCommitteeCountCall (line 61) | type MockBeaconStateReaderCommitteeCountCall struct
    method Return (line 66) | func (c *MockBeaconStateReaderCommitteeCountCall) Return(arg0 uint64) ...
    method Do (line 72) | func (c *MockBeaconStateReaderCommitteeCountCall) Do(f func(uint64) ui...
    method DoAndReturn (line 78) | func (c *MockBeaconStateReaderCommitteeCountCall) DoAndReturn(f func(u...
  type MockBeaconStateReaderGenesisValidatorsRootCall (line 99) | type MockBeaconStateReaderGenesisValidatorsRootCall struct
    method Return (line 104) | func (c *MockBeaconStateReaderGenesisValidatorsRootCall) Return(arg0 c...
    method Do (line 110) | func (c *MockBeaconStateReaderGenesisValidatorsRootCall) Do(f func() c...
    method DoAndReturn (line 116) | func (c *MockBeaconStateReaderGenesisValidatorsRootCall) DoAndReturn(f...
  type MockBeaconStateReaderGetBeaconProposerIndexForSlotCall (line 138) | type MockBeaconStateReaderGetBeaconProposerIndexForSlotCall struct
    method Return (line 143) | func (c *MockBeaconStateReaderGetBeaconProposerIndexForSlotCall) Retur...
    method Do (line 149) | func (c *MockBeaconStateReaderGetBeaconProposerIndexForSlotCall) Do(f ...
    method DoAndReturn (line 155) | func (c *MockBeaconStateReaderGetBeaconProposerIndexForSlotCall) DoAnd...
  type MockBeaconStateReaderGetDomainCall (line 177) | type MockBeaconStateReaderGetDomainCall struct
    method Return (line 182) | func (c *MockBeaconStateReaderGetDomainCall) Return(arg0 []byte, arg1 ...
    method Do (line 188) | func (c *MockBeaconStateReaderGetDomainCall) Do(f func([4]byte, uint64...
    method DoAndReturn (line 194) | func (c *MockBeaconStateReaderGetDomainCall) DoAndReturn(f func([4]byt...
  type MockBeaconStateReaderValidatorForValidatorIndexCall (line 216) | type MockBeaconStateReaderValidatorForValidatorIndexCall struct
    method Return (line 221) | func (c *MockBeaconStateReaderValidatorForValidatorIndexCall) Return(a...
    method Do (line 227) | func (c *MockBeaconStateReaderValidatorForValidatorIndexCall) Do(f fun...
    method DoAndReturn (line 233) | func (c *MockBeaconStateReaderValidatorForValidatorIndexCall) DoAndRet...
  type MockBeaconStateReaderValidatorPublicKeyCall (line 255) | type MockBeaconStateReaderValidatorPublicKeyCall struct
    method Return (line 260) | func (c *MockBeaconStateReaderValidatorPublicKeyCall) Return(arg0 comm...
    method Do (line 266) | func (c *MockBeaconStateReaderValidatorPublicKeyCall) Do(f func(int) (...
    method DoAndReturn (line 272) | func (c *MockBeaconStateReaderValidatorPublicKeyCall) DoAndReturn(f fu...
  type MockBeaconStateReaderVersionCall (line 293) | type MockBeaconStateReaderVersionCall struct
    method Return (line 298) | func (c *MockBeaconStateReaderVersionCall) Return(arg0 clparams.StateV...
    method Do (line 304) | func (c *MockBeaconStateReaderVersionCall) Do(f func() clparams.StateV...
    method DoAndReturn (line 310) | func (c *MockBeaconStateReaderVersionCall) DoAndReturn(f func() clpara...

FILE: cl/aggregation/mock_services/aggregation_pool_mock.go
  type MockAggregationPool (line 21) | type MockAggregationPool struct
    method EXPECT (line 40) | func (m *MockAggregationPool) EXPECT() *MockAggregationPoolMockRecorder {
    method AddAttestation (line 45) | func (m *MockAggregationPool) AddAttestation(att *solid.Attestation) e...
    method GetAggregatationByRoot (line 83) | func (m *MockAggregationPool) GetAggregatationByRoot(root common.Hash)...
    method GetAggregatationByRootAndCommittee (line 121) | func (m *MockAggregationPool) GetAggregatationByRootAndCommittee(root ...
  type MockAggregationPoolMockRecorder (line 28) | type MockAggregationPoolMockRecorder struct
    method AddAttestation (line 53) | func (mr *MockAggregationPoolMockRecorder) AddAttestation(att any) *Mo...
    method GetAggregatationByRoot (line 91) | func (mr *MockAggregationPoolMockRecorder) GetAggregatationByRoot(root...
    method GetAggregatationByRootAndCommittee (line 129) | func (mr *MockAggregationPoolMockRecorder) GetAggregatationByRootAndCo...
  function NewMockAggregationPool (line 33) | func NewMockAggregationPool(ctrl *gomock.Controller) *MockAggregationPool {
  type MockAggregationPoolAddAttestationCall (line 60) | type MockAggregationPoolAddAttestationCall struct
    method Return (line 65) | func (c *MockAggregationPoolAddAttestationCall) Return(arg0 error) *Mo...
    method Do (line 71) | func (c *MockAggregationPoolAddAttestationCall) Do(f func(*solid.Attes...
    method DoAndReturn (line 77) | func (c *MockAggregationPoolAddAttestationCall) DoAndReturn(f func(*so...
  type MockAggregationPoolGetAggregatationByRootCall (line 98) | type MockAggregationPoolGetAggregatationByRootCall struct
    method Return (line 103) | func (c *MockAggregationPoolGetAggregatationByRootCall) Return(arg0 *s...
    method Do (line 109) | func (c *MockAggregationPoolGetAggregatationByRootCall) Do(f func(comm...
    method DoAndReturn (line 115) | func (c *MockAggregationPoolGetAggregatationByRootCall) DoAndReturn(f ...
  type MockAggregationPoolGetAggregatationByRootAndCommitteeCall (line 136) | type MockAggregationPoolGetAggregatationByRootAndCommitteeCall struct
    method Return (line 141) | func (c *MockAggregationPoolGetAggregatationByRootAndCommitteeCall) Re...
    method Do (line 147) | func (c *MockAggregationPoolGetAggregatationByRootAndCommitteeCall) Do...
    method DoAndReturn (line 153) | func (c *MockAggregationPoolGetAggregatationByRootAndCommitteeCall) Do...

FILE: cl/aggregation/pool.go
  type AggregationPool (line 25) | type AggregationPool interface

FILE: cl/aggregation/pool_impl.go
  type aggregationPoolImpl (line 41) | type aggregationPoolImpl struct
    method AddAttestation (line 75) | func (p *aggregationPoolImpl) AddAttestation(inAtt *solid.Attestation)...
    method aggregateByCommittee (line 128) | func (p *aggregationPoolImpl) aggregateByCommittee(inAtt *solid.Attest...
    method GetAggregatationByRoot (line 178) | func (p *aggregationPoolImpl) GetAggregatationByRoot(root common.Hash)...
    method GetAggregatationByRootAndCommittee (line 184) | func (p *aggregationPoolImpl) GetAggregatationByRootAndCommittee(root ...
    method sweepStaleAtt (line 198) | func (p *aggregationPoolImpl) sweepStaleAtt(ctx context.Context) {
    method slotIsStale (line 222) | func (p *aggregationPoolImpl) slotIsStale(targetSlot uint64) bool {
  type keyAggrInCommittee (line 52) | type keyAggrInCommittee struct
  function NewAggregationPool (line 57) | func NewAggregationPool(

FILE: cl/aggregation/pool_test.go
  type PoolTestSuite (line 83) | type PoolTestSuite struct
    method SetupTest (line 90) | func (t *PoolTestSuite) SetupTest() {
    method TearDownTest (line 104) | func (t *PoolTestSuite) TearDownTest() {
    method TestAddAttestationElectra (line 108) | func (t *PoolTestSuite) TestAddAttestationElectra() {
    method TestAddAttestation (line 170) | func (t *PoolTestSuite) TestAddAttestation() {
  function TestPool (line 239) | func TestPool(t *testing.T) {

FILE: cl/antiquary/antiquary.go
  constant safetyMargin (line 44) | safetyMargin = 20_000
  type Antiquary (line 47) | type Antiquary struct
    method Loop (line 120) | func (a *Antiquary) Loop() error {
    method antiquate (line 278) | func (a *Antiquary) antiquate() error {
    method NotifyBackfilled (line 360) | func (a *Antiquary) NotifyBackfilled() {
    method NotifyBlobBackfilled (line 365) | func (a *Antiquary) NotifyBlobBackfilled() {
    method antiquateBlobs (line 369) | func (a *Antiquary) antiquateBlobs() error {
  function NewAntiquary (line 71) | func NewAntiquary(ctx context.Context, blobStorage blob_storage.BlobStor...
  function doesSnapshotDirHaveBeaconBlocksFiles (line 101) | func doesSnapshotDirHaveBeaconBlocksFiles(snapshotDir string) bool {

FILE: cl/antiquary/beacon_states_collector.go
  type beaconStatesCollector (line 44) | type beaconStatesCollector struct
    method addGenesisState (line 127) | func (i *beaconStatesCollector) addGenesisState(ctx context.Context, s...
    method storeEpochData (line 191) | func (i *beaconStatesCollector) storeEpochData(st *state.CachingBeacon...
    method storeSlotData (line 202) | func (i *beaconStatesCollector) storeSlotData(st *state.CachingBeaconS...
    method collectEffectiveBalancesDump (line 217) | func (i *beaconStatesCollector) collectEffectiveBalancesDump(slot uint...
    method collectBalancesDump (line 236) | func (i *beaconStatesCollector) collectBalancesDump(slot uint64, uncom...
    method collectPendingDepositsDump (line 242) | func (i *beaconStatesCollector) collectPendingDepositsDump(slot uint64...
    method preStateTransitionHook (line 248) | func (i *beaconStatesCollector) preStateTransitionHook(preState *state...
    method collectElectraQueuesDiffs (line 256) | func (i *beaconStatesCollector) collectElectraQueuesDiffs(slot uint64,...
    method collectPendingConsolidationsDump (line 280) | func (i *beaconStatesCollector) collectPendingConsolidationsDump(slot ...
    method collectPendingWithdrawalsDump (line 286) | func (i *beaconStatesCollector) collectPendingWithdrawalsDump(slot uin...
    method collectIntraEpochRandaoMix (line 292) | func (i *beaconStatesCollector) collectIntraEpochRandaoMix(slot uint64...
    method collectEpochRandaoMix (line 296) | func (i *beaconStatesCollector) collectEpochRandaoMix(epoch uint64, ra...
    method collectStateRoot (line 301) | func (i *beaconStatesCollector) collectStateRoot(slot uint64, stateRoo...
    method collectBlockRoot (line 305) | func (i *beaconStatesCollector) collectBlockRoot(slot uint64, blockRoo...
    method collectActiveIndices (line 309) | func (i *beaconStatesCollector) collectActiveIndices(epoch uint64, act...
    method collectCurrentSyncCommittee (line 318) | func (i *beaconStatesCollector) collectCurrentSyncCommittee(slot uint6...
    method collectNextSyncCommittee (line 323) | func (i *beaconStatesCollector) collectNextSyncCommittee(slot uint64, ...
    method collectEth1DataVote (line 328) | func (i *beaconStatesCollector) collectEth1DataVote(slot uint64, eth1D...
    method collectSlashings (line 336) | func (i *beaconStatesCollector) collectSlashings(slot uint64, rawSlash...
    method collectStateEvents (line 342) | func (i *beaconStatesCollector) collectStateEvents(slot uint64, events...
    method collectBalancesDiffs (line 346) | func (i *beaconStatesCollector) collectBalancesDiffs(ctx context.Conte...
    method collectEffectiveBalancesDiffs (line 350) | func (i *beaconStatesCollector) collectEffectiveBalancesDiffs(ctx cont...
    method collectInactivityScores (line 354) | func (i *beaconStatesCollector) collectInactivityScores(slot uint64, i...
    method flush (line 358) | func (i *beaconStatesCollector) flush(ctx context.Context, tx kv.RwTx)...
    method close (line 434) | func (i *beaconStatesCollector) close() {
  function newBeaconStatesCollector (line 81) | func newBeaconStatesCollector(beaconCfg *clparams.BeaconChainConfig, tmp...
  function antiquateFullUint64List (line 461) | func antiquateFullUint64List(collector *etl.Collector, slot uint64, raw ...
  function antiquateField (line 473) | func antiquateField(ctx context.Context, slot uint64, uncompressed []byt...
  function antiquateListSSZ (line 487) | func antiquateListSSZ[T solid.EncodableHashableSSZ](ctx context.Context,...
  function antiquateBytesListDiff (line 505) | func antiquateBytesListDiff(ctx context.Context, key []byte, old, new []...

FILE: cl/antiquary/state_antiquary.go
  method loopStates (line 53) | func (s *Antiquary) loopStates(ctx context.Context) {
  method readHistoricalProcessingProgress (line 107) | func (s *Antiquary) readHistoricalProcessingProgress(ctx context.Context...
  function FillStaticValidatorsTableIfNeeded (line 129) | func FillStaticValidatorsTableIfNeeded(ctx context.Context, logger log.L...
  method IncrementBeaconState (line 196) | func (s *Antiquary) IncrementBeaconState(ctx context.Context, to uint64)...
  method initializeStateAntiquaryIfNeeded (line 591) | func (s *Antiquary) initializeStateAntiquaryIfNeeded(ctx context.Context...
  function computeSlotToBeRequested (line 658) | func computeSlotToBeRequested(tx kv.Tx, cfg *clparams.BeaconChainConfig,...

FILE: cl/antiquary/state_antiquary_test.go
  function runTest (line 38) | func runTest(t *testing.T, blocks []*cltypes.SignedBeaconBlock, preState...
  function TestStateAntiquaryElectra (line 49) | func TestStateAntiquaryElectra(t *testing.T) {
  function TestStateAntiquaryCapella (line 54) | func TestStateAntiquaryCapella(t *testing.T) {
  function TestStateAntiquaryBellatrix (line 59) | func TestStateAntiquaryBellatrix(t *testing.T) {
  function TestStateAntiquaryPhase0 (line 65) | func TestStateAntiquaryPhase0(t *testing.T) {

FILE: cl/antiquary/tests/tests.go
  type MockBlockReader (line 78) | type MockBlockReader struct
    method ReadBlockBySlot (line 86) | func (m *MockBlockReader) ReadBlockBySlot(ctx context.Context, tx kv.T...
    method ReadBlindedBlockBySlot (line 90) | func (m *MockBlockReader) ReadBlindedBlockBySlot(ctx context.Context, ...
    method ReadBlockByRoot (line 97) | func (m *MockBlockReader) ReadBlockByRoot(ctx context.Context, tx kv.T...
    method ReadHeaderByRoot (line 111) | func (m *MockBlockReader) ReadHeaderByRoot(ctx context.Context, tx kv....
    method FrozenSlots (line 122) | func (m *MockBlockReader) FrozenSlots() uint64 {
  function NewMockBlockReader (line 82) | func NewMockBlockReader() *MockBlockReader {
  function LoadChain (line 126) | func LoadChain(blocks []*cltypes.SignedBeaconBlock, s *state.CachingBeac...
  function GetElectraRandom (line 142) | func GetElectraRandom() ([]*cltypes.SignedBeaconBlock, *state.CachingBea...
  function GetCapellaRandom (line 166) | func GetCapellaRandom() ([]*cltypes.SignedBeaconBlock, *state.CachingBea...
  function GetPhase0Random (line 190) | func GetPhase0Random() ([]*cltypes.SignedBeaconBlock, *state.CachingBeac...
  function GetBellatrixRandom (line 213) | func GetBellatrixRandom() ([]*cltypes.SignedBeaconBlock, *state.CachingB...

FILE: cl/antiquary/utils.go
  function getProposerDutiesValue (line 32) | func getProposerDutiesValue(s *state.CachingBeaconState) []byte {
  function findNearestSlotBackwards (line 89) | func findNearestSlotBackwards(tx kv.Tx, cfg *clparams.BeaconChainConfig,...

FILE: cl/beacon/beacon_router_configuration/cfg.go
  type RouterConfiguration (line 25) | type RouterConfiguration struct
    method UnwrapEndpointsList (line 48) | func (r *RouterConfiguration) UnwrapEndpointsList(l []string) error {

FILE: cl/beacon/beaconevents/emitter_test.go
  function TestEmitterSet (line 24) | func TestEmitterSet(t *testing.T) {

FILE: cl/beacon/beaconevents/event_notifier.go
  type EventEmitter (line 3) | type EventEmitter struct
    method State (line 15) | func (e *EventEmitter) State() *stateFeed {
    method Operation (line 19) | func (e *EventEmitter) Operation() *operationFeed {
  function NewEventEmitter (line 8) | func NewEventEmitter() *EventEmitter {

FILE: cl/beacon/beaconevents/model.go
  type EventStream (line 10) | type EventStream struct
  type EventTopic (line 15) | type EventTopic
  constant OpAttestation (line 19) | OpAttestation       EventTopic = "attestation"
  constant OpVoluntaryExit (line 20) | OpVoluntaryExit     EventTopic = "voluntary_exit"
  constant OpProposerSlashing (line 21) | OpProposerSlashing  EventTopic = "proposer_slashing"
  constant OpAttesterSlashing (line 22) | OpAttesterSlashing  EventTopic = "attester_slashing"
  constant OpBlsToExecution (line 23) | OpBlsToExecution    EventTopic = "bls_to_execution_change"
  constant OpContributionProof (line 24) | OpContributionProof EventTopic = "contribution_and_proof"
  constant OpBlobSidecar (line 25) | OpBlobSidecar       EventTopic = "blob_sidecar"
  constant OpDataColumnSidecar (line 26) | OpDataColumnSidecar EventTopic = "data_column_sidecar"
  constant StateHead (line 44) | StateHead                        EventTopic = "head"
  constant StateBlock (line 45) | StateBlock                       EventTopic = "block"
  constant StateBlockGossip (line 46) | StateBlockGossip                 EventTopic = "block_gossip"
  constant StateFinalizedCheckpoint (line 47) | StateFinalizedCheckpoint         EventTopic = "finalized_checkpoint"
  constant StateChainReorg (line 48) | StateChainReorg                  EventTopic = "chain_reorg"
  constant StateLightClientFinalityUpdate (line 49) | StateLightClientFinalityUpdate   EventTopic = "light_client_finality_upd...
  constant StateLightClientOptimisticUpdate (line 50) | StateLightClientOptimisticUpdate EventTopic = "light_client_optimistic_u...
  constant StatePayloadAttributes (line 51) | StatePayloadAttributes           EventTopic = "payload_attributes"
  type HeadData (line 55) | type HeadData struct
  type BlockData (line 65) | type BlockData struct
  type BlockGossipData (line 71) | type BlockGossipData struct
  type FinalizedCheckpointData (line 76) | type FinalizedCheckpointData struct
  type ChainReorgData (line 83) | type ChainReorgData struct
  type LightClientFinalityUpdateData (line 94) | type LightClientFinalityUpdateData struct
  type LightClientOptimisticUpdateData (line 99) | type LightClientOptimisticUpdateData struct
  type PayloadAttributesData (line 104) | type PayloadAttributesData struct
  type PayloadAttributesContent (line 109) | type PayloadAttributesContent struct

FILE: cl/beacon/beaconevents/operation_feed.go
  type operationFeed (line 5) | type operationFeed struct
    method Subscribe (line 15) | func (f *operationFeed) Subscribe(channel chan *EventStream) ethevent....
    method SendAttestation (line 19) | func (f *operationFeed) SendAttestation(value *AttestationData) int {
    method SendSingleAttestation (line 26) | func (f *operationFeed) SendSingleAttestation(value *SingleAttestation...
    method SendVoluntaryExit (line 33) | func (f *operationFeed) SendVoluntaryExit(value *VoluntaryExitData) int {
    method SendProposerSlashing (line 40) | func (f *operationFeed) SendProposerSlashing(value *ProposerSlashingDa...
    method SendAttesterSlashing (line 48) | func (f *operationFeed) SendAttesterSlashing(value *AttesterSlashingDa...
    method SendBlsToExecution (line 55) | func (f *operationFeed) SendBlsToExecution(value *BlsToExecutionChange...
    method SendContributionProof (line 62) | func (f *operationFeed) SendContributionProof(value *ContributionAndPr...
    method SendBlobSidecar (line 69) | func (f *operationFeed) SendBlobSidecar(value *BlobSidecarData) int {
    method SendDataColumnSidecar (line 76) | func (f *operationFeed) SendDataColumnSidecar(value *DataColumnSidecar...
  function newOpFeed (line 9) | func newOpFeed() *operationFeed {

FILE: cl/beacon/beaconevents/state_feed.go
  type stateFeed (line 7) | type stateFeed struct
    method Subscribe (line 17) | func (f *stateFeed) Subscribe(channel chan *EventStream) ethevent.Subs...
    method SendHead (line 21) | func (f *stateFeed) SendHead(value *HeadData) int {
    method SendBlock (line 29) | func (f *stateFeed) SendBlock(value *BlockData) int {
    method SendBlockGossip (line 37) | func (f *stateFeed) SendBlockGossip(value *BlockGossipData) int {
    method SendFinalizedCheckpoint (line 44) | func (f *stateFeed) SendFinalizedCheckpoint(value *FinalizedCheckpoint...
    method SendLightClientFinalityUpdate (line 51) | func (f *stateFeed) SendLightClientFinalityUpdate(value *LightClientFi...
    method SendLightClientOptimisticUpdate (line 58) | func (f *stateFeed) SendLightClientOptimisticUpdate(value *LightClient...
    method SendChainReorg (line 65) | func (f *stateFeed) SendChainReorg(value *ChainReorgData) int {
    method SendPayloadAttributes (line 72) | func (f *stateFeed) SendPayloadAttributes(value *PayloadAttributesData...
  function newStateFeed (line 11) | func newStateFeed() *stateFeed {

FILE: cl/beacon/beaconhttp/api.go
  type EndpointError (line 36) | type EndpointError struct
    method Error (line 71) | func (e EndpointError) Error() string {
    method Unwrap (line 75) | func (e EndpointError) Unwrap() error {
    method WriteTo (line 79) | func (e *EndpointError) WriteTo(w http.ResponseWriter) {
  function WrapEndpointError (line 47) | func WrapEndpointError(err error) *EndpointError {
  function NewEndpointError (line 58) | func NewEndpointError(code int, err error) *EndpointError {
  type EndpointHandler (line 87) | type EndpointHandler interface
  type EndpointHandlerFunc (line 91) | type EndpointHandlerFunc
  method Handle (line 93) | func (e EndpointHandlerFunc[T]) Handle(w http.ResponseWriter, r *http.Re...
  function HandleEndpointFunc (line 97) | func HandleEndpointFunc[T any](h EndpointHandlerFunc[T]) http.HandlerFunc {
  function HandleEndpoint (line 101) | func HandleEndpoint[T any](h EndpointHandler[T]) http.HandlerFunc {
  function isNil (line 169) | func isNil[T any](t T) bool {

FILE: cl/beacon/beaconhttp/args.go
  type chainTag (line 31) | type chainTag
  type SegmentID (line 41) | type SegmentID struct
    method Head (line 47) | func (c *SegmentID) Head() bool {
    method Finalized (line 51) | func (c *SegmentID) Finalized() bool {
    method Justified (line 55) | func (c *SegmentID) Justified() bool {
    method Genesis (line 59) | func (c *SegmentID) Genesis() bool {
    method GetSlot (line 63) | func (c *SegmentID) GetSlot() *uint64 {
    method GetRoot (line 67) | func (c *SegmentID) GetRoot() *common.Hash {
  function EpochFromRequest (line 71) | func EpochFromRequest(r *http.Request) (uint64, error) {
  function StringFromRequest (line 85) | func StringFromRequest(r *http.Request, name string) (string, error) {
  function BlockIdFromRequest (line 93) | func BlockIdFromRequest(r *http.Request) (*SegmentID, error) {
  function StateIdFromRequest (line 120) | func StateIdFromRequest(r *http.Request) (*SegmentID, error) {
  function HashFromQueryParams (line 150) | func HashFromQueryParams(r *http.Request, name string) (*common.Hash, er...
  function Uint64FromQueryParams (line 175) | func Uint64FromQueryParams(r *http.Request, name string) (*uint64, error) {
  function StringListFromQueryParams (line 188) | func StringListFromQueryParams(r *http.Request, name string) ([]string, ...

FILE: cl/beacon/beaconhttp/beacon_response.go
  type BeaconResponse (line 27) | type BeaconResponse struct
    method Headers (line 43) | func (r *BeaconResponse) Headers() map[string]string {
    method WithHeaders (line 50) | func (r *BeaconResponse) WithHeaders(headers map[string]string) (out *...
    method WithHeader (line 58) | func (r *BeaconResponse) WithHeader(key string, value string) (out *Be...
    method With (line 66) | func (r *BeaconResponse) With(key string, value any) (out *BeaconRespo...
    method WithFinalized (line 76) | func (r *BeaconResponse) WithFinalized(finalized bool) (out *BeaconRes...
    method WithOptimistic (line 85) | func (r *BeaconResponse) WithOptimistic(optimistic bool) (out *BeaconR...
    method WithVersion (line 93) | func (r *BeaconResponse) WithVersion(version clparams.StateVersion) (o...
    method MarshalJSON (line 101) | func (b *BeaconResponse) MarshalJSON() ([]byte, error) {
    method EncodeSSZ (line 120) | func (b *BeaconResponse) EncodeSSZ(xs []byte) ([]byte, error) {
    method EncodingSizeSSZ (line 132) | func (b *BeaconResponse) EncodingSizeSSZ() int {
  function NewBeaconResponse (line 37) | func NewBeaconResponse(data any) *BeaconResponse {

FILE: cl/beacon/beaconhttp/types.go
  type IntStr (line 24) | type IntStr
    method MarshalJSON (line 26) | func (i IntStr) MarshalJSON() ([]byte, error) {
    method UnmarshalJSON (line 30) | func (i *IntStr) UnmarshalJSON(b []byte) error {

FILE: cl/beacon/beacontest/harness.go
  type HarnessOption (line 46) | type HarnessOption
  function WithTesting (line 48) | func WithTesting(t *testing.T) func(*Harness) error {
  function WithTests (line 55) | func WithTests(name string, xs []Test) func(*Harness) error {
  function WithHandler (line 62) | func WithHandler(name string, handler http.Handler) func(*Harness) error {
  function WithFilesystem (line 69) | func WithFilesystem(name string, handler afero.Fs) func(*Harness) error {
  function WithTestFromFs (line 75) | func WithTestFromFs(fs afero.Fs, name string) func(*Harness) error {
  type Extra (line 94) | type Extra struct
  function WithTestFromBytes (line 100) | func WithTestFromBytes(name string, xs []byte) func(*Harness) error {
  type Harness (line 137) | type Harness struct
    method Execute (line 162) | func (h *Harness) Execute() {
  function Execute (line 145) | func Execute(options ...HarnessOption) {
  type Test (line 181) | type Test struct
    method Execute (line 188) | func (c *Test) Execute(ctx context.Context, t *testing.T) error {
  type Comparison (line 205) | type Comparison struct
    method Compare (line 211) | func (c *Comparison) Compare(t *testing.T, aRaw, bRaw json.RawMessage,...
  type Source (line 313) | type Source struct
    method Execute (line 337) | func (s *Source) Execute(ctx context.Context) (json.RawMessage, int, e...
    method executeRemote (line 352) | func (s *Source) executeRemote(ctx context.Context) (json.RawMessage, ...
    method executeData (line 421) | func (s *Source) executeData(ctx context.Context) (json.RawMessage, in...
    method executeFile (line 429) | func (s *Source) executeFile(ctx context.Context) (json.RawMessage, in...
    method executeRaw (line 450) | func (s *Source) executeRaw(ctx context.Context) (json.RawMessage, int...
    method executeEmpty (line 454) | func (s *Source) executeEmpty(ctx context.Context) (json.RawMessage, i...

FILE: cl/beacon/beacontest/harness_test.go
  function TestSimpleHarness (line 29) | func TestSimpleHarness(t *testing.T) {

FILE: cl/beacon/beacontest/linux_basepathfs.go
  type BasePathFs (line 37) | type BasePathFs struct
    method RealPath (line 65) | func (b *BasePathFs) RealPath(name string) (p string, err error) {
    method Chtimes (line 95) | func (b *BasePathFs) Chtimes(name string, atime, mtime time.Time) (err...
    method Chmod (line 102) | func (b *BasePathFs) Chmod(name string, mode os.FileMode) (err error) {
    method Chown (line 109) | func (b *BasePathFs) Chown(name string, uid, gid int) (err error) {
    method Name (line 116) | func (b *BasePathFs) Name() string {
    method Stat (line 120) | func (b *BasePathFs) Stat(name string) (fi os.FileInfo, err error) {
    method Rename (line 127) | func (b *BasePathFs) Rename(oldname, newname string) (err error) {
    method RemoveAll (line 137) | func (b *BasePathFs) RemoveAll(name string) (err error) {
    method Remove (line 144) | func (b *BasePathFs) Remove(name string) (err error) {
    method OpenFile (line 151) | func (b *BasePathFs) OpenFile(name string, flag int, mode os.FileMode)...
    method Open (line 162) | func (b *BasePathFs) Open(name string) (f afero.File, err error) {
    method Mkdir (line 173) | func (b *BasePathFs) Mkdir(name string, mode os.FileMode) (err error) {
    method MkdirAll (line 180) | func (b *BasePathFs) MkdirAll(name string, mode os.FileMode) (err erro...
    method Create (line 187) | func (b *BasePathFs) Create(name string) (f afero.File, err error) {
    method LstatIfPossible (line 198) | func (b *BasePathFs) LstatIfPossible(name string) (os.FileInfo, bool, ...
    method SymlinkIfPossible (line 210) | func (b *BasePathFs) SymlinkIfPossible(oldname, newname string) error {
    method ReadlinkIfPossible (line 225) | func (b *BasePathFs) ReadlinkIfPossible(name string) (string, error) {
  type BasePathFile (line 42) | type BasePathFile struct
    method Name (line 47) | func (f *BasePathFile) Name() string {
    method ReadDir (line 52) | func (f *BasePathFile) ReadDir(n int) ([]fs.DirEntry, error) {
  function NewBasePathFs (line 59) | func NewBasePathFs(source afero.Fs, path string) afero.Fs {
  function validateBasePathName (line 79) | func validateBasePathName(name string) error {
  type readDirFile (line 239) | type readDirFile struct
    method ReadDir (line 245) | func (r readDirFile) ReadDir(n int) ([]fs.DirEntry, error) {
  type fileInfoDirEntry (line 260) | type fileInfoDirEntry struct
    method Type (line 266) | func (d fileInfoDirEntry) Type() fs.FileMode { return d.FileInfo.Mode(...
    method Info (line 268) | func (d fileInfoDirEntry) Info() (fs.FileInfo, error) { return d.FileI...

FILE: cl/beacon/builder/client.go
  type builderClient (line 45) | type builderClient struct
    method RegisterValidator (line 70) | func (b *builderClient) RegisterValidator(ctx context.Context, registe...
    method GetHeader (line 92) | func (b *builderClient) GetHeader(ctx context.Context, slot int64, par...
    method SubmitBlindedBlocks (line 119) | func (b *builderClient) SubmitBlindedBlocks(ctx context.Context, block...
    method GetStatus (line 195) | func (b *builderClient) GetStatus(ctx context.Context) error {
  function NewBlockBuilderClient (line 52) | func NewBlockBuilderClient(baseUrl string, beaconConfig *clparams.Beacon...
  function httpCall (line 206) | func httpCall[T any](ctx context.Context, client *http.Client, method, u...

FILE: cl/beacon/builder/client_test.go
  type mockRoundTripper (line 38) | type mockRoundTripper
    method RoundTrip (line 40) | func (m mockRoundTripper) RoundTrip(req *http.Request) (*http.Response...
  function TestGetStatus (line 58) | func TestGetStatus(t *testing.T) {
  function TestRegisterValidator (line 130) | func TestRegisterValidator(t *testing.T) {
  function TestGetHeader (line 195) | func TestGetHeader(t *testing.T) {
  function TestSubmitBlindedBlocks (line 255) | func TestSubmitBlindedBlocks(t *testing.T) {
  function newBytes48FromString (line 333) | func newBytes48FromString(s string) common.Bytes48 {
  function newBytes96FromString (line 340) | func newBytes96FromString(s string) common.Bytes96 {

FILE: cl/beacon/builder/interface.go
  type BuilderClient (line 28) | type BuilderClient interface

FILE: cl/beacon/builder/mock_services/builder_client_mock.go
  type MockBuilderClient (line 24) | type MockBuilderClient struct
    method EXPECT (line 43) | func (m *MockBuilderClient) EXPECT() *MockBuilderClientMockRecorder {
    method GetHeader (line 48) | func (m *MockBuilderClient) GetHeader(ctx context.Context, slot int64,...
    method GetStatus (line 87) | func (m *MockBuilderClient) GetStatus(ctx context.Context) error {
    method RegisterValidator (line 125) | func (m *MockBuilderClient) RegisterValidator(ctx context.Context, reg...
    method SubmitBlindedBlocks (line 163) | func (m *MockBuilderClient) SubmitBlindedBlocks(ctx context.Context, b...
  type MockBuilderClientMockRecorder (line 31) | type MockBuilderClientMockRecorder struct
    method GetHeader (line 57) | func (mr *MockBuilderClientMockRecorder) GetHeader(ctx, slot, parentHa...
    method GetStatus (line 95) | func (mr *MockBuilderClientMockRecorder) GetStatus(ctx any) *MockBuild...
    method RegisterValidator (line 133) | func (mr *MockBuilderClientMockRecorder) RegisterValidator(ctx, regist...
    method SubmitBlindedBlocks (line 174) | func (mr *MockBuilderClientMockRecorder) SubmitBlindedBlocks(ctx, bloc...
  function NewMockBuilderClient (line 36) | func NewMockBuilderClient(ctrl *gomock.Controller) *MockBuilderClient {
  type MockBuilderClientGetHeaderCall (line 64) | type MockBuilderClientGetHeaderCall struct
    method Return (line 69) | func (c *MockBuilderClientGetHeaderCall) Return(arg0 *builder.Executio...
    method Do (line 75) | func (c *MockBuilderClientGetHeaderCall) Do(f func(context.Context, in...
    method DoAndReturn (line 81) | func (c *MockBuilderClientGetHeaderCall) DoAndReturn(f func(context.Co...
  type MockBuilderClientGetStatusCall (line 102) | type MockBuilderClientGetStatusCall struct
    method Return (line 107) | func (c *MockBuilderClientGetStatusCall) Return(arg0 error) *MockBuild...
    method Do (line 113) | func (c *MockBuilderClientGetStatusCall) Do(f func(context.Context) er...
    method DoAndReturn (line 119) | func (c *MockBuilderClientGetStatusCall) DoAndReturn(f func(context.Co...
  type MockBuilderClientRegisterValidatorCall (line 140) | type MockBuilderClientRegisterValidatorCall struct
    method Return (line 145) | func (c *MockBuilderClientRegisterValidatorCall) Return(arg0 error) *M...
    method Do (line 151) | func (c *MockBuilderClientRegisterValidatorCall) Do(f func(context.Con...
    method DoAndReturn (line 157) | func (c *MockBuilderClientRegisterValidatorCall) DoAndReturn(f func(co...
  type MockBuilderClientSubmitBlindedBlocksCall (line 181) | type MockBuilderClientSubmitBlindedBlocksCall struct
    method Return (line 186) | func (c *MockBuilderClientSubmitBlindedBlocksCall) Return(arg0 *cltype...
    method Do (line 192) | func (c *MockBuilderClientSubmitBlindedBlocksCall) Do(f func(context.C...
    method DoAndReturn (line 198) | func (c *MockBuilderClientSubmitBlindedBlocksCall) DoAndReturn(f func(...

FILE: cl/beacon/builder/types.go
  type ExecutionHeader (line 29) | type ExecutionHeader struct
    method BlockValue (line 47) | func (h ExecutionHeader) BlockValue() *big.Int {
  type ExecutionHeaderData (line 34) | type ExecutionHeaderData struct
  type ExecutionHeaderMessage (line 39) | type ExecutionHeaderMessage struct
  type BlindedBlockResponse (line 59) | type BlindedBlockResponse struct

FILE: cl/beacon/building/endpoints.go
  type BeaconCommitteeSubscription (line 24) | type BeaconCommitteeSubscription struct
  type SyncCommitteeSubscription (line 32) | type SyncCommitteeSubscription struct
  type PrepareBeaconProposer (line 38) | type PrepareBeaconProposer struct

FILE: cl/beacon/building/state.go
  type State (line 25) | type State struct
    method SetFeeRecipient (line 37) | func (s *State) SetFeeRecipient(idx int, address common.Address) {
  function NewState (line 31) | func NewState() *State {

FILE: cl/beacon/handler/attestation_rewards.go
  type IdealReward (line 37) | type IdealReward struct
  type TotalReward (line 46) | type TotalReward struct
  type attestationsRewardsResponse (line 55) | type attestationsRewardsResponse struct
  method PostEthV1BeaconRewardsAttestations (line 60) | func (a *ApiHandler) PostEthV1BeaconRewardsAttestations(w http.ResponseW...
  method isInactivityLeaking (line 235) | func (a *ApiHandler) isInactivityLeaking(epoch uint64, finalityCheckpoin...
  method baseReward (line 243) | func (a *ApiHandler) baseReward(version clparams.StateVersion, effective...
  method computeAttestationsRewardsForAltair (line 251) | func (a *ApiHandler) computeAttestationsRewardsForAltair(validatorSet *s...
  met
Copy disabled (too large) Download .json
Condensed preview — 7285 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (77,925K chars).
[
  {
    "path": ".buildkite/hooks/pre-command",
    "chars": 874,
    "preview": "#!/bin/bash\n\nset +u\n\necho \"--- :golang: Setting up Golang build environment\"\n\nif [[ ! -z \"${BUILDKITE_GOLANG_IMPORT_PATH"
  },
  {
    "path": ".buildkite/pipeline.yml",
    "chars": 145,
    "preview": "---\nsteps:\n  - command: './nightly.sh'\n    label: 'build & run geth'\n    env:\n      BUILDKITE_GOLANG_IMPORT_PATH: \"githu"
  },
  {
    "path": ".dockerignore",
    "chars": 111,
    "preview": "**/*_test.go\n**/*.a\n**/*.dylib\n**/*.o\n**/*.dSYM\n\nbuild\ntests/testdata\ncmd/prometheus\nvendor\n\nDockerfile\n.github"
  },
  {
    "path": ".gitattributes",
    "chars": 117,
    "preview": "# Auto detect text files and perform LF normalization\n* text=auto\n*.txt text eol=lf\n*.sol linguist-language=Solidity\n"
  },
  {
    "path": ".github/CONTRIBUTING.md",
    "chars": 1854,
    "preview": "# Contributing\n\nThank you for considering to help out with the source code! We welcome \ncontributions from anyone on the"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug.md",
    "chars": 484,
    "preview": "---\nname: Report a bug\nabout: Something with Erigon is not working as expected\ntitle: ''\nlabels: 'type:bug'\nassignees: '"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature.md",
    "chars": 345,
    "preview": "---\nname: Request a feature\nabout: Report a missing feature - e.g. as a step before submitting a PR\ntitle: ''\nlabels: 't"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/question.md",
    "chars": 375,
    "preview": "---\nname: Ask a question\nabout: Something is unclear\ntitle: ''\nlabels: 'type:docs'\nassignees: ''\n---\n\nThis should only b"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 118,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      interval: \"weekly\"\n"
  },
  {
    "path": ".github/no-response.yml",
    "chars": 651,
    "preview": "# Number of days of inactivity before an Issue is closed for lack of response\ndaysUntilClose: 30\n# Label requiring a res"
  },
  {
    "path": ".github/stale.yml",
    "chars": 696,
    "preview": "# Number of days of inactivity before an issue becomes stale\ndaysUntilStale: 366\n# Number of days of inactivity before a"
  },
  {
    "path": ".github/workflows/backups-dashboards.yml",
    "chars": 4445,
    "preview": "# Author: Michele@DevOpsTeam.Erigon\n# Maintainers: DevOps@DevOpsTeam.Erigon\n# Description: This workflow is responsible "
  },
  {
    "path": ".github/workflows/check.yml",
    "chars": 243,
    "preview": "name: Check\n\non:\n  push:\n    branches:\n      - main\n  workflow_dispatch:\n\njobs:\n  goreleaser:\n    runs-on: ubuntu-latest"
  },
  {
    "path": ".github/workflows/ci-cd-main-branch-docker-images.yml",
    "chars": 9424,
    "preview": "name: CI-CD build and deploy docker images based on the last commit in the target branch\nrun-name: \"Commit id ${{ github"
  },
  {
    "path": ".github/workflows/ci.yml",
    "chars": 3335,
    "preview": "name: Unit tests\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n  pull_request:\n    branches:\n      - '**'\n"
  },
  {
    "path": ".github/workflows/docker-image-remove.yml",
    "chars": 1463,
    "preview": "name: Remove docker image\nrun-name: Request to remove erigontech/erigon:${{ inputs.docker_image_tag }} by @${{ github.ac"
  },
  {
    "path": ".github/workflows/docker-tags.yml",
    "chars": 940,
    "preview": "name: Docker tags\n\non:\n  push:\n    tags:\n      - 'y*.*.*'\n  workflow_dispatch:\n\njobs:\n  goreleaser:\n    runs-on: ubuntu-"
  },
  {
    "path": ".github/workflows/kurtosis/deposit-request.io",
    "chars": 2284,
    "preview": "id: pectra-massive-deposit-0x02\nname: \"Massive deposit with 0x02 creds\"\ntimeout: 1h\nconfig:\n  #walletPrivkey: \"\"\n  depos"
  },
  {
    "path": ".github/workflows/kurtosis/eip7702-test.io",
    "chars": 3162,
    "preview": "\nid: eip7702-test\nname: \"EIP7702 test\"\ntimeout: 30m\nconfig:\n  #walletPrivkey: \"\"\n  waitForSlot: 41\ntasks:\n- name: check_"
  },
  {
    "path": ".github/workflows/kurtosis/eip7702-txpool-invalidation.io",
    "chars": 14154,
    "preview": "id: eip7702-txpool-invalidation\nname: \"EIP7702 txpool invalidation\"\ntimeout: 30m\nconfig:\n  walletCount: 10 # Number of c"
  },
  {
    "path": ".github/workflows/kurtosis/el-triggered-consolidation-of-consolidations.io",
    "chars": 3063,
    "preview": "\nid: el-triggered-consolidation-of-consolidation\nname: \"Consolidation of Consolidations\"\ntimeout: 1h\nconfig:\n  #walletPr"
  },
  {
    "path": ".github/workflows/kurtosis/el-triggered-consolidations-test.io",
    "chars": 870,
    "preview": "\nid: el-triggered-consolidation\nname: \"EL-triggered consolidation test\"\ntimeout: 1h\nconfig:\n  #walletPrivkey: \"\"\n  sourc"
  },
  {
    "path": ".github/workflows/kurtosis/el-triggered-exit.io",
    "chars": 995,
    "preview": "\nid: el-triggered-exit\nname: \"EL-triggered exit test\"\ntimeout: 1h\nconfig:\n  #walletPrivkey: \"\"\n  validatorIndex: 20\n  wa"
  },
  {
    "path": ".github/workflows/kurtosis/el-triggered-withdrawal.io",
    "chars": 1465,
    "preview": "\nid: el-triggered-withdrawal\nname: \"EL-triggered withdrawal test\"\ntimeout: 1h\nconfig:\n  walletPrivkey: \"\"\n  validatorInd"
  },
  {
    "path": ".github/workflows/kurtosis/fast_lifecycle.io",
    "chars": 661,
    "preview": "participants_matrix:\n  el:\n    - el_type: erigon\n      el_image: test/erigon:current\n  cl:\n    - cl_type: teku\n      cl_"
  },
  {
    "path": ".github/workflows/kurtosis/fusaka.io",
    "chars": 952,
    "preview": "participants_matrix:\n  el:\n    - el_type: geth\n      el_image: ethpandaops/geth:fusaka-devnet-0\n    - el_type: erigon\n  "
  },
  {
    "path": ".github/workflows/kurtosis/pectra.io",
    "chars": 1373,
    "preview": "participants_matrix:\n  el:\n    - el_type: erigon\n      el_image: test/erigon:current\n      el_log_level: \"debug\"\n  cl:\n "
  },
  {
    "path": ".github/workflows/kurtosis/regular-assertoor.io",
    "chars": 1389,
    "preview": "participants_matrix:\n  el:\n    - el_type: erigon\n      el_image: test/erigon:current\n  cl:\n    - cl_type: lighthouse\n   "
  },
  {
    "path": ".github/workflows/kurtosis/txpool-assertoor-short.io",
    "chars": 1049,
    "preview": "participants:\n- el_type: erigon\n  el_image: test/erigon:current\n  el_extra_params:\n    - \"--txpool.globalqueue 1000000\"\n"
  },
  {
    "path": ".github/workflows/kurtosis/txpool-assertoor.io",
    "chars": 1043,
    "preview": "participants:\n- el_type: erigon\n  el_image: test/erigon:current\n  el_extra_params:\n    - \"--txpool.globalqueue 2000000\"\n"
  },
  {
    "path": ".github/workflows/kurtosis/validator-lifecycle-test-v3.io",
    "chars": 55476,
    "preview": "id: validator-lifecycle-test-v3\nname: \"Validator Lifecycle Test (v3)\"\ntimeout: 672h\nconfig:\n  walletPrivkey: \"\"\n  deposi"
  },
  {
    "path": ".github/workflows/lint.yml",
    "chars": 677,
    "preview": "name: Lint\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n  pull_request:\n    branches:\n      - main\n      "
  },
  {
    "path": ".github/workflows/manifest.yml",
    "chars": 723,
    "preview": "name: Manifest Check\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n    paths:\n      - 'go.mod'\n  pull_requ"
  },
  {
    "path": ".github/workflows/qa-clean-exit-block-downloading.yml",
    "chars": 4265,
    "preview": "name: QA - Clean exit (block downloading)\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron: "
  },
  {
    "path": ".github/workflows/qa-clean-exit-snapshot-downloading.yml",
    "chars": 3797,
    "preview": "name: QA - Clean exit (snapshot downloading)\n\non:\n#  push:\n#    branches:\n#      - main\n#      - 'release/3.*'\n#  pull_r"
  },
  {
    "path": ".github/workflows/qa-constrained-tip-tracking.yml",
    "chars": 5353,
    "preview": "name: QA - Constrained Tip tracking\n\non:\n  schedule:\n    - cron: '0 20 * * 0'  # Run on Sunday at 08:00 PM UTC\n  workflo"
  },
  {
    "path": ".github/workflows/qa-rpc-integration-tests-gnosis.yml",
    "chars": 7066,
    "preview": "name: QA - RPC Integration Tests (Gnosis)\n\non:\n  workflow_dispatch:     # Run manually\n\n\njobs:\n  gnosis-rpc-integ-tests:"
  },
  {
    "path": ".github/workflows/qa-rpc-integration-tests-latest.yml",
    "chars": 7227,
    "preview": "name: QA - RPC Integration Tests Latest\n\non:\n  workflow_dispatch:     # Run manually\n#  push:\n#    branches:\n#      - ma"
  },
  {
    "path": ".github/workflows/qa-rpc-integration-tests-polygon.yml",
    "chars": 7088,
    "preview": "name: QA - RPC Integration Tests (Polygon)\n\non:\n  workflow_dispatch:     # Run manually\n\n\njobs:\n  bor-mainnet-rpc-integ-"
  },
  {
    "path": ".github/workflows/qa-rpc-integration-tests.yml",
    "chars": 7068,
    "preview": "name: QA - RPC Integration Tests\n\non:\n  workflow_dispatch:     # Run manually\n\njobs:\n  mainnet-rpc-integ-tests:\n    conc"
  },
  {
    "path": ".github/workflows/qa-rpc-performance-tests.yml",
    "chars": 12051,
    "preview": "name: QA - RPC Performance Tests\n\non:\n  workflow_dispatch:\n#  schedule:\n#    - cron: '0 20 * * *'  # Run every night at "
  },
  {
    "path": ".github/workflows/qa-rpc-test-bisection-tool.yml",
    "chars": 4573,
    "preview": "name: QA - RPC Test Bisection Tool\n\non:\n  workflow_dispatch:\n    inputs:\n      starting_commit:\n        description: 'Co"
  },
  {
    "path": ".github/workflows/qa-snap-download.yml",
    "chars": 3832,
    "preview": "name: QA - Snapshot Download\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron: '0 20 * * 1-6"
  },
  {
    "path": ".github/workflows/qa-sync-from-scratch-minimal-node.yml",
    "chars": 4170,
    "preview": "name: QA - Sync from scratch (minimal node)\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron"
  },
  {
    "path": ".github/workflows/qa-sync-from-scratch.yml",
    "chars": 3938,
    "preview": "name: QA - Sync from scratch\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron: '0 0 * * 0'  "
  },
  {
    "path": ".github/workflows/qa-sync-test-bisection-tool.yml",
    "chars": 3697,
    "preview": "name: QA - Sync Test Bisection Tool\n\non:\n  workflow_dispatch:\n    inputs:\n      starting_commit:\n        description: 'C"
  },
  {
    "path": ".github/workflows/qa-sync-with-externalcl.yml",
    "chars": 6039,
    "preview": "name: QA - Sync with external CL\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron: \"0 8 * * "
  },
  {
    "path": ".github/workflows/qa-test-report.yml",
    "chars": 1196,
    "preview": "name: QA - Test Report\n\non:\n  workflow_dispatch:\n    inputs:\n      start_date:\n        description: 'Starting date (YYYY"
  },
  {
    "path": ".github/workflows/qa-tip-tracking-gnosis.yml",
    "chars": 5115,
    "preview": "name: QA - Tip tracking (Gnosis)\n\non:\n  push:\n#    branches:\n#      - 'release/3.1'\n  workflow_dispatch:     # Run manua"
  },
  {
    "path": ".github/workflows/qa-tip-tracking-polygon.yml",
    "chars": 5120,
    "preview": "name: QA - Tip tracking (Polygon)\n\non:\n  push:\n    branches:\n      - 'release/3.1'\n  workflow_dispatch:      # Run manua"
  },
  {
    "path": ".github/workflows/qa-tip-tracking.yml",
    "chars": 5143,
    "preview": "name: QA - Tip tracking\n\non:\n#  push:\n#    branches:\n#      - 'release/3.*'\n#  schedule:\n#    - cron: '0 20 * * 1-6'  # "
  },
  {
    "path": ".github/workflows/qa-txpool-performance-test.yml",
    "chars": 18652,
    "preview": "name: QA - TxPool performance test\n\non:\n  workflow_call:\n  workflow_dispatch:\n  push:\n    branches:\n      - \"release/3.*"
  },
  {
    "path": ".github/workflows/release.yml",
    "chars": 17954,
    "preview": "name: Release\nrun-name: Build release ${{ inputs.release_version}} from branch ${{ inputs.checkout_ref }}, Skip tests=${"
  },
  {
    "path": ".github/workflows/reusable-release-build-debian-pkg.yml",
    "chars": 6545,
    "preview": "name: Build debian package (part of release process)\n\non:\n  workflow_call:\n    inputs:\n      application:\n        requir"
  },
  {
    "path": ".github/workflows/scripts/run_rpc_tests.sh",
    "chars": 3972,
    "preview": "#!/bin/bash\nset -e # Enable exit on error\n\n# Sanity check for mandatory parameters\nif [ -z \"$1\" ] || [ -z \"$2\" ]; then\n "
  },
  {
    "path": ".github/workflows/scripts/run_rpc_tests_ethereum.sh",
    "chars": 1844,
    "preview": "#!/bin/bash\nset -e # Enable exit on error\n\n# The workspace directory, no default because run_rpc_tests has it\nWORKSPACE="
  },
  {
    "path": ".github/workflows/scripts/run_rpc_tests_ethereum_latest.sh",
    "chars": 1046,
    "preview": "#!/bin/bash\nset -e # Enable exit on error\n\n# The workspace directory, no default because run_rpc_tests has it\nWORKSPACE="
  },
  {
    "path": ".github/workflows/scripts/run_rpc_tests_gnosis.sh",
    "chars": 703,
    "preview": "#!/bin/bash\nset -e # Enable exit on error\n\n# The workspace directory, no default because run_rpc_tests has it\nWORKSPACE="
  },
  {
    "path": ".github/workflows/scripts/run_rpc_tests_polygon.sh",
    "chars": 627,
    "preview": "#!/bin/bash\nset -e # Enable exit on error\n\n# The workspace directory, no default because run_rpc_tests has it\nWORKSPACE="
  },
  {
    "path": ".github/workflows/scripts/test_report/debug.ts",
    "chars": 739,
    "preview": "// Debug script for running generate-test-report.ts\n// This script sets up the necessary environment variables for TypeS"
  },
  {
    "path": ".github/workflows/scripts/test_report/generate-test-report.ts",
    "chars": 17681,
    "preview": "import * as core from '@actions/core';\nimport * as github from '@actions/github';\n\nconst acceptedWorkflows = [\n    '.git"
  },
  {
    "path": ".github/workflows/scripts/test_report/package.json",
    "chars": 369,
    "preview": "{\n  \"name\": \"gha-test-report\",\n  \"private\": true,\n  \"type\": \"module\",\n  \"scripts\": {\n    \"prepare\": \"npm run build\",\n   "
  },
  {
    "path": ".github/workflows/scripts/test_report/tsconfig.json",
    "chars": 225,
    "preview": "{\n  \"compilerOptions\": {\n    \"target\": \"ES2020\",\n    \"module\": \"ES2020\",\n    \"moduleResolution\": \"node\",\n    \"strict\": t"
  },
  {
    "path": ".github/workflows/test-all-erigon-race.yml",
    "chars": 3279,
    "preview": "name: All tests (with -race)\n\non:\n  push:\n    branches:\n      - 'release/**'\n      - main\n  workflow_dispatch:\n\njobs:\n  "
  },
  {
    "path": ".github/workflows/test-all-erigon.yml",
    "chars": 5741,
    "preview": "name: All tests\n\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n  pull_request:\n    branches:\n      - main "
  },
  {
    "path": ".github/workflows/test-erigon-is-library.yml",
    "chars": 806,
    "preview": "name: Integration tests\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n  workflow_dispatch:\n\njobs:\n  tests:"
  },
  {
    "path": ".github/workflows/test-hive-eest.yml",
    "chars": 5835,
    "preview": "name: Hive EEST tests\n\non:\n  push:\n    branches:\n        - 'release/**'\n        - main\n  workflow_dispatch:\n\nconcurrency"
  },
  {
    "path": ".github/workflows/test-hive.yml",
    "chars": 5271,
    "preview": "name: Test Hive\n\non:\n  push:\n    branches:\n        - main\n        - 'release/**'\n  schedule:\n    - cron: \"0 05 * * *\" # "
  },
  {
    "path": ".github/workflows/test-integration-caplin.yml",
    "chars": 1868,
    "preview": "name: Consensus spec\non:\n  push:\n    branches:\n      - main\n      - 'release/**'\n  pull_request:\n    branches:\n      - m"
  },
  {
    "path": ".github/workflows/test-kurtosis-assertoor.yml",
    "chars": 2088,
    "preview": "name: Kurtosis Assertoor GitHub Action\n\nenv:\n  DOCKERHUB_REPOSITORY: \"node-real/bsc-erigon\"\n  APP_REPO: \"node-real/bsc-e"
  },
  {
    "path": ".gitignore",
    "chars": 1498,
    "preview": "# See http://help.github.com/ignore-files/ for more about ignoring files.\n#\n# If you find yourself ignoring temporary fi"
  },
  {
    "path": ".gitmodules",
    "chars": 336,
    "preview": "[submodule \"tests\"]\n\tpath = execution/tests/legacy-tests\n\turl = https://github.com/ethereum/tests\n[submodule \"eest-fixtu"
  },
  {
    "path": ".golangci.yml",
    "chars": 3380,
    "preview": "version: \"2\"\nrun:\n  build-tags:\n    - nosqlite\n    - noboltdb\n    - nosilkworm\n    - goexperiment.synctest\nlinters:\n  en"
  },
  {
    "path": ".readthedocs.yml",
    "chars": 267,
    "preview": "# .readthedocs.yml\n# Read the Docs configuration file\n# See https://docs.readthedocs.io/en/stable/config-file/v2.html fo"
  },
  {
    "path": "AUTHORS",
    "chars": 13635,
    "preview": "# This is the official list of go-ethereum authors for copyright purposes.\n\na e r t h <aerth@users.noreply.github.com>\nA"
  },
  {
    "path": "COPYING",
    "chars": 7652,
    "preview": "                   GNU LESSER GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007"
  },
  {
    "path": "ChangeLog.md",
    "chars": 5312,
    "preview": "ChangeLog\n---------\n\n## v3.1.0 (in development)\n\n**Improvements:**\n\nTODO\n\n**Bugfixes:**\n\nTODO\n\n### TODO\n\n- milestones:\nh"
  },
  {
    "path": "Dockerfile",
    "chars": 5771,
    "preview": "## A custom Docker image can be built using one of the following commands:\n##\n##   1. docker build -t ${my-local-image-n"
  },
  {
    "path": "Makefile",
    "chars": 19162,
    "preview": "GO ?= go # if using docker, should not need to be installed/linked\nGOAMD64_VERSION ?= v2 # See https://go.dev/wiki/Minim"
  },
  {
    "path": "README.md",
    "chars": 38611,
    "preview": "# ‼️ IMPORTANT ANNOUNCEMENT ‼️\n\n**BSC-Erigon Client: End of Life Notice**\n\nDear BSC Community,\n\nAs the BNB Smart Chain c"
  },
  {
    "path": "RELEASE_INSTRUCTIONS.md",
    "chars": 3000,
    "preview": "# How to prepare Erigon release (things not to forget)\n\n## Update Jump dest optimisation code\nThis step does not have to"
  },
  {
    "path": "cl/abstract/beacon_state.go",
    "chars": 10974,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/abstract/mock_services/beacon_state_mock.go",
    "chars": 241525,
    "preview": "// Code generated by MockGen. DO NOT EDIT.\n// Source: github.com/erigontech/erigon/cl/abstract (interfaces: BeaconState)"
  },
  {
    "path": "cl/abstract/mock_services/beacon_state_mutator_mock.go",
    "chars": 110511,
    "preview": "// Code generated by MockGen. DO NOT EDIT.\n// Source: github.com/erigontech/erigon/cl/abstract (interfaces: BeaconStateM"
  },
  {
    "path": "cl/abstract/mock_services/beacon_state_reader_mock.go",
    "chars": 11831,
    "preview": "// Code generated by MockGen. DO NOT EDIT.\n// Source: github.com/erigontech/erigon/cl/abstract (interfaces: BeaconStateR"
  },
  {
    "path": "cl/aggregation/mock_services/aggregation_pool_mock.go",
    "chars": 6059,
    "preview": "// Code generated by MockGen. DO NOT EDIT.\n// Source: github.com/erigontech/erigon/cl/aggregation (interfaces: Aggregati"
  },
  {
    "path": "cl/aggregation/pool.go",
    "chars": 1270,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/aggregation/pool_impl.go",
    "chars": 6594,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/aggregation/pool_test.go",
    "chars": 6862,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/antiquary.go",
    "chars": 14271,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/beacon_states_collector.go",
    "chars": 23928,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/state_antiquary.go",
    "chars": 22846,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/state_antiquary_test.go",
    "chars": 2593,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/tests/test_data/bellatrix/meta.yaml",
    "chars": 19,
    "preview": "{blocks_count: 96}\n"
  },
  {
    "path": "cl/antiquary/tests/test_data/capella/meta.yaml",
    "chars": 34,
    "preview": "{blocks_count: 2, bls_setting: 1}\n"
  },
  {
    "path": "cl/antiquary/tests/test_data/electra/meta.yaml",
    "chars": 34,
    "preview": "{blocks_count: 2, bls_setting: 1}\n"
  },
  {
    "path": "cl/antiquary/tests/test_data/phase0/meta.yaml",
    "chars": 34,
    "preview": "{blocks_count: 2, bls_setting: 1}\n"
  },
  {
    "path": "cl/antiquary/tests/tests.go",
    "chars": 8459,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/antiquary/utils.go",
    "chars": 3418,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beacon_router_configuration/cfg.go",
    "chars": 2049,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beaconevents/emitter_test.go",
    "chars": 1231,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beaconevents/event_notifier.go",
    "chars": 432,
    "preview": "package beaconevents\n\ntype EventEmitter struct {\n\tstateFeed     *stateFeed     // block state feed\n\toperationFeed *opera"
  },
  {
    "path": "cl/beacon/beaconevents/model.go",
    "chars": 4893,
    "preview": "package beaconevents\n\nimport (\n\t\"github.com/erigontech/erigon-lib/common\"\n\t\"github.com/erigontech/erigon/cl/cltypes\"\n\t\"g"
  },
  {
    "path": "cl/beacon/beaconevents/operation_feed.go",
    "chars": 1806,
    "preview": "package beaconevents\n\nimport ethevent \"github.com/erigontech/erigon/p2p/event\"\n\ntype operationFeed struct {\n\tfeed *ethev"
  },
  {
    "path": "cl/beacon/beaconevents/state_feed.go",
    "chars": 1848,
    "preview": "package beaconevents\n\nimport (\n\tethevent \"github.com/erigontech/erigon/p2p/event\"\n)\n\ntype stateFeed struct {\n\tfeed *ethe"
  },
  {
    "path": "cl/beacon/beaconhttp/api.go",
    "chars": 5428,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beaconhttp/args.go",
    "chars": 4793,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beaconhttp/beacon_response.go",
    "chars": 3376,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beaconhttp/types.go",
    "chars": 1213,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beacontest/errors.go",
    "chars": 900,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beacontest/harness.go",
    "chars": 10718,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beacontest/harness_test.go",
    "chars": 1031,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/beacontest/harness_test_data.yml",
    "chars": 1148,
    "preview": "tests:\n  - name: \"equality expression\"\n    expect:\n      data:\n        hello: world\n    actual:\n      data:\n        hell"
  },
  {
    "path": "cl/beacon/beacontest/linux_basepathfs.go",
    "chars": 7601,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/builder/client.go",
    "chars": 9026,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/builder/client_test.go",
    "chars": 11324,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/builder/interface.go",
    "chars": 1481,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/builder/mock_services/builder_client_mock.go",
    "chars": 7822,
    "preview": "// Code generated by MockGen. DO NOT EDIT.\n// Source: github.com/erigontech/erigon/cl/beacon/builder (interfaces: Builde"
  },
  {
    "path": "cl/beacon/builder/test_data/mock_blinded_block.json",
    "chars": 11442,
    "preview": "{\n  \"message\": {\n    \"slot\": \"1\",\n    \"proposer_index\": \"1\",\n    \"parent_root\": \"0xcf8e0d4e9587369b2301d0790347320302cc0"
  },
  {
    "path": "cl/beacon/builder/test_data/mock_blinded_block_resp.json",
    "chars": 2323,
    "preview": "{\n  \"version\": \"deneb\",\n  \"data\": {\n    \"execution_payload\": {\n      \"parent_hash\": \"0xcf8e0d4e9587369b2301d079034732030"
  },
  {
    "path": "cl/beacon/builder/test_data/mock_header.json",
    "chars": 2158,
    "preview": "{\n  \"version\": \"deneb\",\n  \"data\": {\n    \"message\": {\n      \"header\": {\n        \"parent_hash\": \"0xcf8e0d4e9587369b2301d07"
  },
  {
    "path": "cl/beacon/builder/types.go",
    "chars": 2133,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/building/endpoints.go",
    "chars": 1565,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/building/state.go",
    "chars": 1106,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/attestation_rewards.go",
    "chars": 20192,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/blobs.go",
    "chars": 9508,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/block_production.go",
    "chars": 59981,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/blocks.go",
    "chars": 7066,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/builder.go",
    "chars": 4428,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/committees.go",
    "chars": 6357,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/config.go",
    "chars": 2662,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/data_test.go",
    "chars": 4534,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/duties_attester.go",
    "chars": 7978,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/duties_proposer.go",
    "chars": 5468,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/duties_sync.go",
    "chars": 5324,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/events.go",
    "chars": 4108,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/forkchoice.go",
    "chars": 2027,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/format.go",
    "chars": 909,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/genesis.go",
    "chars": 1509,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/handler.go",
    "chars": 19268,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/harness/attestation_rewards_bellatrix.yml",
    "chars": 730,
    "preview": "vars:\n  finalized_epoch: \"99999999\"\n  justified_slot: \"160\"\n  justified_epoch: \"4\"\ntests:\n  ## blocks\n  - name: all vali"
  },
  {
    "path": "cl/beacon/handler/harness/attestation_rewards_phase0.yml",
    "chars": 896,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/blob_sidecars.yaml",
    "chars": 217,
    "preview": "tests:\n  - name: sidecars\n    actual:\n      handler: i\n      path: /eth/v1/beacon/blob_sidecars/0x694ee8130c036e4c7c052f"
  },
  {
    "path": "cl/beacon/handler/harness/blocks.yml",
    "chars": 2536,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/committees.yml",
    "chars": 1469,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/committees_f.yml",
    "chars": 1411,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/config.yml",
    "chars": 1050,
    "preview": "tests:\n  - name: fork schedule\n    actual:\n      handler: i\n      path: /eth/v1/config/fork_schedule\n    compare:\n      "
  },
  {
    "path": "cl/beacon/handler/harness/duties_attester.yml",
    "chars": 1210,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/duties_attester_f.yml",
    "chars": 1210,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/duties_proposer.yml",
    "chars": 1274,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/duties_sync_bellatrix.yml",
    "chars": 985,
    "preview": "vars:\n  finalized_epoch: 99999999\n  head_slot: 160\n  head_epoch: 4\ntests:\n  - name: non empty indices\n    expect:\n      "
  },
  {
    "path": "cl/beacon/handler/harness/expected_withdrawals.yml",
    "chars": 380,
    "preview": "tests:\n  - name: head_expected_withdrawals\n    actual:\n      handler: i\n      path: /eth/v1/builder/states/head/expected"
  },
  {
    "path": "cl/beacon/handler/harness/fork_choice.yml",
    "chars": 476,
    "preview": "vars:\ntests:\n  - name: get fork choice\n    expect:\n      file: \"forkchoice_1\"\n      fs: td\n    actual:\n      handler: i\n"
  },
  {
    "path": "cl/beacon/handler/harness/headers.yml",
    "chars": 1388,
    "preview": "vars:\n  head_hash: '0xeffdd8ef40c3c901f0724d48e04ce257967cf1da31929f3b6db614f89ef8d660'\n  post_root: '0x933d6650f2999f17"
  },
  {
    "path": "cl/beacon/handler/harness/lightclient.yml",
    "chars": 878,
    "preview": "vars:\n  head_hash: '0x0d86eab4d6fd68775a23fda562ab7e059a88d36768729f7ba6d817ba67a6a7ee'\n  bad_hash: '0xbeeeeeeeeeeeeeeee"
  },
  {
    "path": "cl/beacon/handler/harness/lighthouse.yml",
    "chars": 349,
    "preview": "tests:\n  - name: inclusion_global\n    actual:\n      handler: i\n      path: /lighthouse/validator_inclusion/4/global\n    "
  },
  {
    "path": "cl/beacon/handler/harness/liveness.yml",
    "chars": 341,
    "preview": "tests:\n  - name: spec\n    actual:\n      handler: i\n      path: /eth/v1/validator/liveness/260\n      method: post\n      b"
  },
  {
    "path": "cl/beacon/handler/harness/validators.yml",
    "chars": 1152,
    "preview": "tests:\n  - name: head_validators_all\n    actual:\n      handler: i\n      path: /eth/v1/beacon/states/head/validators\n    "
  },
  {
    "path": "cl/beacon/handler/harness_test.go",
    "chars": 2717,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/headers.go",
    "chars": 4363,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/lightclient.go",
    "chars": 4595,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/lighthouse.go",
    "chars": 15385,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/liveness.go",
    "chars": 5603,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/node.go",
    "chars": 6069,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/pool.go",
    "chars": 20040,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/pool_test.go",
    "chars": 13333,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/rewards.go",
    "chars": 9688,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/rewards_test.go",
    "chars": 15914,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/states.go",
    "chars": 25512,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/states_test.go",
    "chars": 28977,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/subscription.go",
    "chars": 5492,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  },
  {
    "path": "cl/beacon/handler/test_data/attestations_1.json",
    "chars": 96509,
    "preview": "{\n  \"data\": {\n    \"ideal_rewards\": [\n      {\n        \"effective_balance\": \"32000000000\",\n        \"head\": \"0\",\n        \"t"
  },
  {
    "path": "cl/beacon/handler/test_data/attestations_2.json",
    "chars": 881,
    "preview": "{\n  \"data\": {\n    \"ideal_rewards\": [\n      {\n        \"effective_balance\": \"32000000000\",\n        \"head\": \"0\",\n        \"t"
  },
  {
    "path": "cl/beacon/handler/test_data/attestations_3.json",
    "chars": 203995,
    "preview": "{\n  \"data\": {\n    \"ideal_rewards\": [\n      {\n        \"effective_balance\": \"17000000000\",\n        \"head\": \"57360\",\n      "
  },
  {
    "path": "cl/beacon/handler/test_data/attestations_4.json",
    "chars": 883,
    "preview": "{\n  \"data\": {\n    \"ideal_rewards\": [\n      {\n        \"effective_balance\": \"20000000000\",\n        \"head\": \"0\",\n        \"t"
  },
  {
    "path": "cl/beacon/handler/test_data/blinded_block_1.json",
    "chars": 110960,
    "preview": "{\n  \"data\": {\n    \"message\": {\n      \"body\": {\n        \"attestations\": [\n          {\n            \"aggregation_bits\": \"0x"
  },
  {
    "path": "cl/beacon/handler/test_data/blob_sidecars_1.json",
    "chars": 528915,
    "preview": "{\n  \"data\": [\n    {\n      \"blob\": \"0x01000000000000000000000000000000000000000000000000000000000000000000000000000000000"
  },
  {
    "path": "cl/beacon/handler/test_data/block_1.json",
    "chars": 110784,
    "preview": "{\n  \"data\": {\n    \"message\": {\n      \"body\": {\n        \"attestations\": [\n          {\n            \"aggregation_bits\": \"0x"
  },
  {
    "path": "cl/beacon/handler/test_data/committees_1.yaml",
    "chars": 925,
    "preview": "- { \"data\": [ { \"index\": \"0\",\"slot\": \"8322\",\"validators\": [ \"0\",\"104\",\"491\",\"501\",\"379\",\"318\",\"275\",\"504\",\"75\",\"280\",\"10"
  },
  {
    "path": "cl/beacon/handler/test_data/duties_1.yaml",
    "chars": 2094,
    "preview": "- { \"data\": [ { \"committee_index\": \"0\",\"committee_length\": \"14\",\"committees_at_slot\": \"1\",\"pubkey\": \"0x97f1d3a73197d7942"
  },
  {
    "path": "cl/beacon/handler/test_data/duties_sync_1.yaml",
    "chars": 1993,
    "preview": "- { \"data\": [ { \"pubkey\": \"0x97f1d3a73197d7942695638c4fa9ac0fc3688c4f9774b905a14e3a3f171bac586c55e83ff97a1aeffb3af00adb2"
  },
  {
    "path": "cl/beacon/handler/test_data/expected_withdrawals_avg.json",
    "chars": 982,
    "preview": "{\"data\":[{\"address\":\"0x4242424242424242424242424242424242424242\",\"amount\":\"20355258402\",\"index\":\"0\",\"validator_index\":\"3"
  },
  {
    "path": "cl/beacon/handler/test_data/expected_withdrawals_head.json",
    "chars": 1064,
    "preview": "{\"data\":[{\"address\":\"0x4242424242424242424242424242424242424242\",\"amount\":\"804\",\"index\":\"8\",\"validator_index\":\"35\"},{\"ad"
  },
  {
    "path": "cl/beacon/handler/test_data/forkchoice_1.yaml",
    "chars": 1116,
    "preview": "- { \"data\": [ { \"execution_optimistic\": false,\"root\": \"0x010203000000000000000000000000000000000000000000000000000000000"
  },
  {
    "path": "cl/beacon/handler/test_data/harness_inclusion_global_1.json",
    "chars": 227,
    "preview": "{\"data\":{\"current_epoch_active_gwei\":8192000000000,\"current_epoch_target_attesting_gwei\":0,\"previous_epoch_active_gwei\":"
  },
  {
    "path": "cl/beacon/handler/test_data/harness_inclusion_local_1.json",
    "chars": 332,
    "preview": "{\"data\":{\"current_epoch_effective_balance_gwei\":32000000000,\"is_active_unslashed_in_current_epoch\":true,\"is_active_unsla"
  },
  {
    "path": "cl/beacon/handler/test_data/head_validators_all.json",
    "chars": 153819,
    "preview": "{\n  \"data\": [\n    {\n      \"balance\": \"31999877792\",\n      \"index\": \"0\",\n      \"status\": \"active_ongoing\",\n      \"validat"
  },
  {
    "path": "cl/beacon/handler/test_data/head_validators_balances.json",
    "chars": 10187,
    "preview": "{\"data\":[{\"balance\":\"31999877792\",\"index\":\"0\"},{\"balance\":\"31999877792\",\"index\":\"1\"},{\"balance\":\"32000209997\",\"index\":\"2"
  },
  {
    "path": "cl/beacon/handler/test_data/light_client_bootstrap_1.json",
    "chars": 52587,
    "preview": "{\"data\":{\"current_sync_committee\":{\"aggregate_pubkey\":\"0xb7dad3c14f74e6e9f88d341983d8daf541d59f1dc7373eed42bb62e55948eb0"
  },
  {
    "path": "cl/beacon/handler/test_data/light_client_finality_1.json",
    "chars": 1515,
    "preview": "{\"data\":{\"attested_header\":{\"beacon\":{\"body_root\":\"0x1bcf7977a0413b2bbc234ea1e6b63806cb4d24fadf1d9faab698f2828e804542\",\""
  },
  {
    "path": "cl/beacon/handler/test_data/light_client_optimistic_1.json",
    "chars": 767,
    "preview": "{\"data\":{\"attested_header\":{\"beacon\":{\"body_root\":\"0x1bcf7977a0413b2bbc234ea1e6b63806cb4d24fadf1d9faab698f2828e804542\",\""
  },
  {
    "path": "cl/beacon/handler/test_data/light_client_update_1.json",
    "chars": 119641,
    "preview": "[\n  {\n    \"data\": {\n      \"attested_header\": {\n        \"beacon\": {\n          \"body_root\": \"0x1bcf7977a0413b2bbc234ea1e6b"
  },
  {
    "path": "cl/beacon/handler/test_data/rewards_1.yaml",
    "chars": 567,
    "preview": "- { \"data\": { \"proposer_index\": \"203\",\"attestations\": \"332205\",\"proposer_slashings\": \"0\",\"attester_slashings\": \"0\",\"sync"
  },
  {
    "path": "cl/beacon/handler/test_data/rewards_2.json",
    "chars": 17371,
    "preview": "{\n  \"data\": [\n    {\n      \"validator_index\": \"0\",\n      \"reward\": \"-698\"\n    },\n    {\n      \"validator_index\": \"1\",\n    "
  },
  {
    "path": "cl/beacon/handler/test_data/states_1.yaml",
    "chars": 576,
    "preview": "finality_checkpoint: { \"data\": { \"finalized\": { \"epoch\": \"1\",\"root\": \"0xde46b0f2ed5e72f0cec20246403b14c963ec995d7c2825f3"
  },
  {
    "path": "cl/beacon/handler/test_data/sync_committees_1.json",
    "chars": 14096,
    "preview": "{\n  \"data\": {\n    \"validators\": [\n      \"109\",\n      \"134\",\n      \"145\",\n      \"89\",\n      \"181\",\n      \"81\",\n      \"159"
  },
  {
    "path": "cl/beacon/handler/test_data/validator_1.json",
    "chars": 633,
    "preview": "{\n  \"data\": {\n    \"balance\": \"32000408740\",\n    \"index\": \"4\",\n    \"status\": \"active_ongoing\",\n    \"validator\": {\n      \""
  },
  {
    "path": "cl/beacon/handler/test_data/validators_1.yaml",
    "chars": 4260,
    "preview": "- { \"data\": [ { \"index\": \"1\",\"status\": \"withdrawal_possible\",\"balance\": \"20125000000\",\"validator\": { \"pubkey\": \"0xa572cb"
  },
  {
    "path": "cl/beacon/handler/test_data/validators_some.json",
    "chars": 2468,
    "preview": "{\n  \"data\": [\n    {\n      \"balance\": \"31999744330\",\n      \"index\": \"0\",\n      \"status\": \"active_ongoing\",\n      \"validat"
  },
  {
    "path": "cl/beacon/handler/utils_test.go",
    "chars": 8582,
    "preview": "// Copyright 2024 The Erigon Authors\n// This file is part of Erigon.\n//\n// Erigon is free software: you can redistribute"
  }
]

// ... and 7085 more files (download for full content)

About this extraction

This page contains the full source code of the node-real/bsc-erigon GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 7285 files (68.6 MB), approximately 18.4M tokens, and a symbol index with 32784 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!