diff --git a/testutil/beaconmock/options.go b/testutil/beaconmock/options.go index 1e9905530..201648a27 100644 --- a/testutil/beaconmock/options.go +++ b/testutil/beaconmock/options.go @@ -528,7 +528,7 @@ func defaultMock(httpMock HTTPMock, httpServer *http.Server, clock clockwork.Clo return block, nil }, SignedBeaconBlockFunc: func(context.Context, string) (*eth2spec.VersionedSignedBeaconBlock, error) { - return testutil.RandomCapellaVersionedSignedBeaconBlock(), nil // Note the slot is probably wrong. + return testutil.RandomDenebVersionedSignedBeaconBlock(), nil // Note the slot is probably wrong. }, ProposerDutiesFunc: func(context.Context, eth2p0.Epoch, []eth2p0.ValidatorIndex) ([]*eth2v1.ProposerDuty, error) { return []*eth2v1.ProposerDuty{}, nil diff --git a/testutil/beaconmock/server_test.go b/testutil/beaconmock/server_test.go index a022c0958..98f204a55 100644 --- a/testutil/beaconmock/server_test.go +++ b/testutil/beaconmock/server_test.go @@ -25,11 +25,12 @@ func TestStatic(t *testing.T) { configResp, err := eth2Cl.Spec(ctx, ð2api.SpecOpts{}) require.NoError(t, err) - require.Equal(t, uint64(36660), configResp.Data["ALTAIR_FORK_EPOCH"]) + require.Equal(t, uint64(0), configResp.Data["ALTAIR_FORK_EPOCH"]) + require.Equal(t, uint64(29696), configResp.Data["DENEB_FORK_EPOCH"]) contractResp, err := eth2Cl.DepositContract(ctx, ð2api.DepositContractOpts{}) require.NoError(t, err) - require.Equal(t, uint64(5), contractResp.Data.ChainID) + require.Equal(t, uint64(17000), contractResp.Data.ChainID) slotsPerEpoch, err := eth2Cl.SlotsPerEpoch(ctx) require.NoError(t, err) diff --git a/testutil/beaconmock/static.json b/testutil/beaconmock/static.json index 7902ec02a..41ef96e6a 100644 --- a/testutil/beaconmock/static.json +++ b/testutil/beaconmock/static.json @@ -1,176 +1,196 @@ { "/eth/v1/beacon/genesis": { "data": { - "genesis_time": "1616508000", - "genesis_validators_root": "0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb", - "genesis_fork_version": "0x00001020" + "genesis_time": "1695902400", + "genesis_validators_root": "0x9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b1", + "genesis_fork_version": "0x01017000" } }, "/eth/v1/config/deposit_contract": { "data": { - "chain_id": "5", - "address": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" + "chain_id": "17000", + "address": "0x4242424242424242424242424242424242424242" } }, "/eth/v1/config/fork_schedule": { "data": [ { - "previous_version": "0x00001020", - "current_version": "0x00001020", + "previous_version": "0x01017000", + "current_version": "0x01017000", "epoch": "0" }, { - "previous_version": "0x00001020", - "current_version": "0x01001020", - "epoch": "36660" + "previous_version": "0x01017000", + "current_version": "0x02017000", + "epoch": "0" }, { - "previous_version": "0x01001020", - "current_version": "0x02001020", - "epoch": "112260" + "previous_version": "0x02017000", + "current_version": "0x03017000", + "epoch": "0" + }, + { + "previous_version": "0x03017000", + "current_version": "0x04017000", + "epoch": "256" + }, + { + "previous_version": "0x04017000", + "current_version": "0x05017000", + "epoch": "29696" } ] }, "/eth/v1/node/version": { "data": { - "version": "teku/v22.8.0/linux-x86_64/-eclipseadoptium-openjdk64bitservervm-java-17" + "version": "teku/v24.6.1/linux-x86_64/-ubuntu-openjdk64bitservervm-java-21" } }, "/eth/v1/config/spec": { "data": { - "ALTAIR_FORK_EPOCH": "36660", - "ALTAIR_FORK_VERSION": "0x01001020", - "ATTESTATION_PROPAGATION_SLOT_RANGE": "32", - "ATTESTATION_SUBNET_COUNT": "64", - "ATTESTATION_SUBNET_EXTRA_BITS": "0", - "ATTESTATION_SUBNET_PREFIX_BITS": "6", - "BASE_REWARD_FACTOR": "64", - "BELLATRIX_FORK_EPOCH": "112260", - "BELLATRIX_FORK_VERSION": "0x02001020", - "BLS_WITHDRAWAL_PREFIX": "0x00", - "BYTES_PER_LOGS_BLOOM": "256", - "CHURN_LIMIT_QUOTIENT": "65536", - "CONFIG_NAME": "prater", - "DEPOSIT_CHAIN_ID": "5", - "DEPOSIT_CONTRACT_ADDRESS": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", - "DEPOSIT_NETWORK_ID": "5", - "DOMAIN_AGGREGATE_AND_PROOF": "0x06000000", - "DOMAIN_APPLICATION_BUILDER": "0x00000001", - "DOMAIN_BEACON_ATTESTER": "0x01000000", - "DOMAIN_BEACON_PROPOSER": "0x00000000", - "DOMAIN_CONTRIBUTION_AND_PROOF": "0x09000000", - "DOMAIN_DEPOSIT": "0x03000000", - "DOMAIN_RANDAO": "0x02000000", - "DOMAIN_SELECTION_PROOF": "0x05000000", - "DOMAIN_SYNC_COMMITTEE": "0x07000000", - "DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF": "0x08000000", - "DOMAIN_VOLUNTARY_EXIT": "0x04000000", - "EFFECTIVE_BALANCE_INCREMENT": "1000000000", - "EJECTION_BALANCE": "16000000000", - "EPOCHS_PER_ETH1_VOTING_PERIOD": "4", - "EPOCHS_PER_HISTORICAL_VECTOR": "64", - "EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION": "256", - "EPOCHS_PER_SLASHINGS_VECTOR": "64", - "EPOCHS_PER_SUBNET_SUBSCRIPTION": "256", - "EPOCHS_PER_SYNC_COMMITTEE_PERIOD": "256", - "ETH1_FOLLOW_DISTANCE": "2048", - "GOSSIP_MAX_SIZE": "10485760", - "GENESIS_DELAY": "1919188", - "GENESIS_FORK_VERSION": "0x00001020", - "HISTORICAL_ROOTS_LIMIT": "16777216", - "HYSTERESIS_DOWNWARD_MULTIPLIER": "1", - "HYSTERESIS_QUOTIENT": "4", - "HYSTERESIS_UPWARD_MULTIPLIER": "5", - "INACTIVITY_PENALTY_QUOTIENT": "33554432", - "INACTIVITY_PENALTY_QUOTIENT_ALTAIR": "50331648", - "INACTIVITY_PENALTY_QUOTIENT_BELLATRIX": "16777216", + "SLOTS_PER_EPOCH": "32", + "PRESET_BASE": "mainnet", + "TERMINAL_TOTAL_DIFFICULTY": "0", "INACTIVITY_SCORE_BIAS": "4", - "INACTIVITY_SCORE_RECOVERY_RATE": "16", - "MAX_ATTESTATIONS": "128", + "PENDING_BALANCE_DEPOSITS_LIMIT": "134217728", "MAX_ATTESTER_SLASHINGS": "2", - "MAX_CHUNK_SIZE": "10485760", + "MAX_WITHDRAWALS_PER_PAYLOAD": "16", + "INACTIVITY_PENALTY_QUOTIENT_BELLATRIX": "16777216", + "PENDING_PARTIAL_WITHDRAWALS_LIMIT": "134217728", + "INACTIVITY_PENALTY_QUOTIENT": "67108864", + "SAFE_SLOTS_TO_UPDATE_JUSTIFIED": "8", + "SECONDS_PER_ETH1_BLOCK": "14", + "MIN_SEED_LOOKAHEAD": "1", + "VALIDATOR_REGISTRY_LIMIT": "1099511627776", + "REORG_MAX_EPOCHS_SINCE_FINALIZATION": "2", + "SLOTS_PER_HISTORICAL_ROOT": "8192", + "RESP_TIMEOUT": "10", + "DOMAIN_VOLUNTARY_EXIT": "0x04000000", + "MAX_VALIDATORS_PER_COMMITTEE": "2048", + "MIN_GENESIS_TIME": "1695902100", + "ALTAIR_FORK_EPOCH": "0", + "HYSTERESIS_QUOTIENT": "4", + "ALTAIR_FORK_VERSION": "0x02017000", "MAX_BYTES_PER_TRANSACTION": "1073741824", - "MAX_COMMITTEES_PER_SLOT": "4", + "MAX_CHUNK_SIZE": "10485760", + "TTFB_TIMEOUT": "5", + "WHISTLEBLOWER_REWARD_QUOTIENT": "512", + "PROPOSER_REWARD_QUOTIENT": "8", + "MAX_VALIDATORS_PER_WITHDRAWALS_SWEEP": "16384", + "EPOCHS_PER_HISTORICAL_VECTOR": "65536", + "MIN_PER_EPOCH_CHURN_LIMIT": "4", + "MAX_ATTESTER_SLASHINGS_ELECTRA": "1", + "TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE": "16", "MAX_DEPOSITS": "16", - "MAX_EFFECTIVE_BALANCE": "32000000000", + "BELLATRIX_FORK_EPOCH": "0", + "MAX_REQUEST_BLOB_SIDECARS": "768", + "REORG_HEAD_WEIGHT_THRESHOLD": "20", + "TARGET_AGGREGATORS_PER_COMMITTEE": "16", + "DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF": "0x08000000", + "MESSAGE_DOMAIN_INVALID_SNAPPY": "0x00000000", + "EPOCHS_PER_SLASHINGS_VECTOR": "8192", + "MIN_SLASHING_PENALTY_QUOTIENT": "128", + "MAX_BLS_TO_EXECUTION_CHANGES": "16", + "GOSSIP_MAX_SIZE": "10485760", + "DOMAIN_BEACON_ATTESTER": "0x01000000", + "EPOCHS_PER_SUBNET_SUBSCRIPTION": "256", + "MAX_ATTESTATIONS_ELECTRA": "8", + "ATTESTATION_SUBNET_COUNT": "64", + "GENESIS_DELAY": "300", + "MAX_SEED_LOOKAHEAD": "4", + "ETH1_FOLLOW_DISTANCE": "2048", + "SECONDS_PER_SLOT": "12", + "REORG_PARENT_WEIGHT_THRESHOLD": "160", + "MIN_SYNC_COMMITTEE_PARTICIPANTS": "1", + "BELLATRIX_FORK_VERSION": "0x03017000", + "PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX": "3", + "EFFECTIVE_BALANCE_INCREMENT": "1000000000", + "FIELD_ELEMENTS_PER_BLOB": "4096", + "MIN_EPOCHS_TO_INACTIVITY_PENALTY": "4", + "BASE_REWARD_FACTOR": "64", "MAX_EXTRA_DATA_BYTES": "32", + "CONFIG_NAME": "holesky", "MAX_PROPOSER_SLASHINGS": "16", - "MAX_REQUEST_BLOCKS": "1024", - "MAX_SEED_LOOKAHEAD": "4", + "MAX_CONSOLIDATIONS": "1", + "INACTIVITY_SCORE_RECOVERY_RATE": "16", + "MIN_EPOCHS_FOR_BLOB_SIDECARS_REQUESTS": "4096", "MAX_TRANSACTIONS_PER_PAYLOAD": "1048576", - "MAX_VALIDATORS_PER_COMMITTEE": "2048", - "MAX_VOLUNTARY_EXITS": "16", - "MAXIMUM_GOSSIP_CLOCK_DISPARITY": "500", - "MESSAGE_DOMAIN_INVALID_SNAPPY": "0x00000000", - "MESSAGE_DOMAIN_VALID_SNAPPY": "0x01000000", + "DEPOSIT_CONTRACT_ADDRESS": "0x4242424242424242424242424242424242424242", "MIN_ATTESTATION_INCLUSION_DELAY": "1", - "MIN_DEPOSIT_AMOUNT": "1000000000", - "MIN_EPOCHS_FOR_BLOCK_REQUESTS": "33024", - "MIN_EPOCHS_TO_INACTIVITY_PENALTY": "4", - "MIN_GENESIS_ACTIVE_VALIDATOR_COUNT": "16384", - "MIN_GENESIS_TIME": "1614588812", - "MIN_PER_EPOCH_CHURN_LIMIT": "4", - "MIN_SEED_LOOKAHEAD": "1", - "MIN_SLASHING_PENALTY_QUOTIENT": "64", - "MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR": "64", + "SHUFFLE_ROUND_COUNT": "90", + "TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH": "18446744073709551615", + "MAX_EFFECTIVE_BALANCE": "32000000000", + "DOMAIN_BEACON_PROPOSER": "0x00000000", + "DENEB_FORK_EPOCH": "29696", + "DOMAIN_SYNC_COMMITTEE": "0x07000000", + "PROPOSER_SCORE_BOOST": "40", + "DOMAIN_SELECTION_PROOF": "0x05000000", "MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX": "32", - "MIN_SYNC_COMMITTEE_PARTICIPANTS": "1", - "MIN_VALIDATOR_WITHDRAWABILITY_DELAY": "256", - "PRESET_BASE": "minimal", - "PROPORTIONAL_SLASHING_MULTIPLIER": "2", - "PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR": "2", - "PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX": "3", - "PROPOSER_REWARD_QUOTIENT": "8", - "PROPOSER_SCORE_BOOST": "70", - "RANDOM_SUBNETS_PER_VALIDATOR": "1", - "RESP_TIMEOUT": "10", - "SAFE_SLOTS_TO_UPDATE_JUSTIFIED": "8", - "SECONDS_PER_ETH1_BLOCK": "14", - "SECONDS_PER_SLOT": "12", - "SHARD_COMMITTEE_PERIOD": "256", - "SHUFFLE_ROUND_COUNT": "10", - "SLOTS_PER_EPOCH": "32", - "SLOTS_PER_HISTORICAL_ROOT": "64", + "MAX_PER_EPOCH_ACTIVATION_CHURN_LIMIT": "8", + "HYSTERESIS_UPWARD_MULTIPLIER": "5", "SUBNETS_PER_NODE": "2", - "SYNC_COMMITTEE_SIZE": "512", - "SYNC_COMMITTEE_SUBNET_COUNT": "4", - "TARGET_AGGREGATORS_PER_COMMITTEE": "16", - "TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE": "16", - "TARGET_COMMITTEE_SIZE": "4", + "MIN_DEPOSIT_AMOUNT": "1000000000", + "MIN_SLASHING_PENALTY_QUOTIENT_ELECTRA": "4096", + "PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR": "2", + "MAX_BLOBS_PER_BLOCK": "6", + "MIN_VALIDATOR_WITHDRAWABILITY_DELAY": "256", + "MAXIMUM_GOSSIP_CLOCK_DISPARITY": "500", + "TARGET_COMMITTEE_SIZE": "128", "TERMINAL_BLOCK_HASH": "0x0000000000000000000000000000000000000000000000000000000000000000", - "TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH": "18446744073709551615", - "TERMINAL_TOTAL_DIFFICULTY": "10790000", - "TTFB_TIMEOUT": "5", + "DOMAIN_DEPOSIT": "0x03000000", + "DOMAIN_CONTRIBUTION_AND_PROOF": "0x09000000", "UPDATE_TIMEOUT": "8192", - "VALIDATOR_REGISTRY_LIMIT": "1099511627776", - "WHISTLEBLOWER_REWARD_QUOTIENT": "512" + "ELECTRA_FORK_EPOCH": "18446744073709551615", + "SYNC_COMMITTEE_BRANCH_LENGTH": "5", + "DEPOSIT_CHAIN_ID": "17000", + "MAX_BLOB_COMMITMENTS_PER_BLOCK": "4096", + "DOMAIN_RANDAO": "0x02000000", + "CAPELLA_FORK_VERSION": "0x04017000", + "MAX_EFFECTIVE_BALANCE_ELECTRA": "2048000000000", + "MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR": "64", + "EPOCHS_PER_ETH1_VOTING_PERIOD": "64", + "MAX_DEPOSIT_RECEIPTS_PER_PAYLOAD": "8192", + "WHISTLEBLOWER_REWARD_QUOTIENT_ELECTRA": "4096", + "HISTORICAL_ROOTS_LIMIT": "16777216", + "ATTESTATION_PROPAGATION_SLOT_RANGE": "32", + "SYNC_COMMITTEE_SIZE": "512", + "ATTESTATION_SUBNET_PREFIX_BITS": "6", + "PROPORTIONAL_SLASHING_MULTIPLIER": "1", + "MAX_WITHDRAWAL_REQUESTS_PER_PAYLOAD": "16", + "MESSAGE_DOMAIN_VALID_SNAPPY": "0x01000000", + "MAX_VOLUNTARY_EXITS": "16", + "PENDING_CONSOLIDATIONS_LIMIT": "262144", + "HYSTERESIS_DOWNWARD_MULTIPLIER": "1", + "DOMAIN_APPLICATION_BUILDER": "0x00000001", + "MAX_PENDING_PARTIALS_PER_WITHDRAWALS_SWEEP": "8", + "EPOCHS_PER_SYNC_COMMITTEE_PERIOD": "256", + "BYTES_PER_LOGS_BLOOM": "256", + "MIN_GENESIS_ACTIVE_VALIDATOR_COUNT": "16384", + "MAX_ATTESTATIONS": "128", + "MIN_EPOCHS_FOR_BLOCK_REQUESTS": "33024", + "DENEB_FORK_VERSION": "0x05017000", + "ELECTRA_FORK_VERSION": "0x06017000", + "MAX_REQUEST_BLOCKS": "1024", + "GENESIS_FORK_VERSION": "0x01017000", + "KZG_COMMITMENT_INCLUSION_PROOF_DEPTH": "17", + "DEPOSIT_NETWORK_ID": "17000", + "MAX_REQUEST_BLOCKS_DENEB": "128", + "BLOB_SIDECAR_SUBNET_COUNT": "6", + "SYNC_COMMITTEE_SUBNET_COUNT": "4", + "CAPELLA_FORK_EPOCH": "256", + "EJECTION_BALANCE": "28000000000", + "ATTESTATION_SUBNET_EXTRA_BITS": "0", + "MAX_COMMITTEES_PER_SLOT": "64", + "SHARD_COMMITTEE_PERIOD": "256", + "INACTIVITY_PENALTY_QUOTIENT_ALTAIR": "50331648", + "DOMAIN_AGGREGATE_AND_PROOF": "0x06000000", + "CHURN_LIMIT_QUOTIENT": "65536", + "BLS_WITHDRAWAL_PREFIX": "0x00", + "MIN_ACTIVATION_BALANCE": "32000000000" } }, "/eth/v2/beacon/blocks/0": { - "version": "phase0", - "execution_optimistic": false, - "data": { - "message": { - "slot": "0", - "proposer_index": "0", - "parent_root": "0x0000000000000000000000000000000000000000000000000000000000000000", - "state_root": "0x895390e92edc03df7096e9f51e51896e8dbe6e7e838180dadbfd869fdd77a659", - "body": { - "randao_reveal": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "eth1_data": { - "deposit_root": "0x0000000000000000000000000000000000000000000000000000000000000000", - "deposit_count": "0", - "block_hash": "0x0000000000000000000000000000000000000000000000000000000000000000" - }, - "graffiti": "0x0000000000000000000000000000000000000000000000000000000000000000", - "proposer_slashings": [], - "attester_slashings": [], - "attestations": [], - "deposits": [], - "voluntary_exits": [] - } - }, - "signature": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" - } + "code": 404, + "message": "Not found" } } diff --git a/testutil/integration/simnet_test.go b/testutil/integration/simnet_test.go index 5029970b5..2b4ff0378 100644 --- a/testutil/integration/simnet_test.go +++ b/testutil/integration/simnet_test.go @@ -196,7 +196,9 @@ func newSimnetArgs(t *testing.T) simnetArgs { ) seed := 99 random := rand.New(rand.NewSource(int64(seed))) - lock, p2pKeys, secretShares := cluster.NewForT(t, numDVs, n, n, seed, random) + lock, p2pKeys, secretShares := cluster.NewForT(t, numDVs, n, n, seed, random, func(definition *cluster.Definition) { + definition.ForkVersion = []byte{0x01, 0x01, 0x70, 0x00} + }) secrets := secretShares[0]