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
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
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.