From 7bf67645b652254acf18eedc1ad6fa29fa6a181a Mon Sep 17 00:00:00 2001 From: g11tech Date: Sun, 10 Jul 2022 00:35:28 +0530 Subject: [PATCH] Add config matching tests for validator interop with other beacon nodes (#4271) --- .../test/unit/utils/interopConfigs.ts | 379 ++++++++++++++++++ .../validator/test/unit/utils/params.test.ts | 17 +- 2 files changed, 395 insertions(+), 1 deletion(-) create mode 100644 packages/validator/test/unit/utils/interopConfigs.ts diff --git a/packages/validator/test/unit/utils/interopConfigs.ts b/packages/validator/test/unit/utils/interopConfigs.ts new file mode 100644 index 000000000000..3dca6c46dca4 --- /dev/null +++ b/packages/validator/test/unit/utils/interopConfigs.ts @@ -0,0 +1,379 @@ +/* eslint-disable @typescript-eslint/naming-convention */ + +export const lightHouseKilnConfig = { + PRESET_BASE: "mainnet", + TERMINAL_TOTAL_DIFFICULTY: "20000000000000", + TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000", + TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: "18446744073709551615", + SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY: "128", + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: "95000", + MIN_GENESIS_TIME: "1647007200", + GENESIS_FORK_VERSION: "0x70000069", + GENESIS_DELAY: "300", + ALTAIR_FORK_VERSION: "0x70000070", + ALTAIR_FORK_EPOCH: "50", + BELLATRIX_FORK_VERSION: "0x70000071", + BELLATRIX_FORK_EPOCH: "150", + SECONDS_PER_SLOT: "12", + SECONDS_PER_ETH1_BLOCK: "14", + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: "256", + SHARD_COMMITTEE_PERIOD: "256", + ETH1_FOLLOW_DISTANCE: "16", + INACTIVITY_SCORE_BIAS: "4", + INACTIVITY_SCORE_RECOVERY_RATE: "16", + EJECTION_BALANCE: "16000000000", + MIN_PER_EPOCH_CHURN_LIMIT: "4", + CHURN_LIMIT_QUOTIENT: "65536", + DEPOSIT_CHAIN_ID: "1337802", + DEPOSIT_NETWORK_ID: "1337802", + DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242", + MAX_COMMITTEES_PER_SLOT: "64", + TARGET_COMMITTEE_SIZE: "128", + MAX_VALIDATORS_PER_COMMITTEE: "2048", + SHUFFLE_ROUND_COUNT: "90", + HYSTERESIS_QUOTIENT: "4", + HYSTERESIS_DOWNWARD_MULTIPLIER: "1", + HYSTERESIS_UPWARD_MULTIPLIER: "5", + SAFE_SLOTS_TO_UPDATE_JUSTIFIED: "8", + MIN_DEPOSIT_AMOUNT: "1000000000", + MAX_EFFECTIVE_BALANCE: "32000000000", + EFFECTIVE_BALANCE_INCREMENT: "1000000000", + MIN_ATTESTATION_INCLUSION_DELAY: "1", + SLOTS_PER_EPOCH: "32", + MIN_SEED_LOOKAHEAD: "1", + MAX_SEED_LOOKAHEAD: "4", + EPOCHS_PER_ETH1_VOTING_PERIOD: "64", + SLOTS_PER_HISTORICAL_ROOT: "8192", + MIN_EPOCHS_TO_INACTIVITY_PENALTY: "4", + EPOCHS_PER_HISTORICAL_VECTOR: "65536", + EPOCHS_PER_SLASHINGS_VECTOR: "8192", + HISTORICAL_ROOTS_LIMIT: "16777216", + VALIDATOR_REGISTRY_LIMIT: "1099511627776", + BASE_REWARD_FACTOR: "64", + WHISTLEBLOWER_REWARD_QUOTIENT: "512", + PROPOSER_REWARD_QUOTIENT: "8", + INACTIVITY_PENALTY_QUOTIENT: "67108864", + MIN_SLASHING_PENALTY_QUOTIENT: "128", + PROPORTIONAL_SLASHING_MULTIPLIER: "1", + MAX_PROPOSER_SLASHINGS: "16", + MAX_ATTESTER_SLASHINGS: "2", + MAX_ATTESTATIONS: "128", + MAX_DEPOSITS: "16", + MAX_VOLUNTARY_EXITS: "16", + INACTIVITY_PENALTY_QUOTIENT_ALTAIR: "50331648", + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: "64", + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: "2", + SYNC_COMMITTEE_SIZE: "512", + EPOCHS_PER_SYNC_COMMITTEE_PERIOD: "256", + MIN_SYNC_COMMITTEE_PARTICIPANTS: "1", + DOMAIN_BEACON_PROPOSER: "0x00000000", + DOMAIN_VOLUNTARY_EXIT: "0x04000000", + DOMAIN_RANDAO: "0x02000000", + DOMAIN_DEPOSIT: "0x03000000", + RANDOM_SUBNETS_PER_VALIDATOR: "1", + EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: "256", + DOMAIN_AGGREGATE_AND_PROOF: "0x06000000", + TARGET_AGGREGATORS_PER_COMMITTEE: "16", + DOMAIN_SELECTION_PROOF: "0x05000000", + BLS_WITHDRAWAL_PREFIX: "0x00", + DOMAIN_BEACON_ATTESTER: "0x01000000", +}; + +export const prysmKilnConfig = { + ALTAIR_FORK_EPOCH: "50", + ALTAIR_FORK_VERSION: "0x70000070", + BASE_REWARD_FACTOR: "64", + BELLATRIX_FORK_EPOCH: "150", + BELLATRIX_FORK_VERSION: "0x70000071", + BLS_WITHDRAWAL_PREFIX: "0x00", + CHURN_LIMIT_QUOTIENT: "65536", + CONFIG_NAME: "devnet", + DEPOSIT_CHAIN_ID: "1337802", + DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242", + DEPOSIT_NETWORK_ID: "1337802", + DOMAIN_AGGREGATE_AND_PROOF: "0x06000000", + 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: "64", + EPOCHS_PER_HISTORICAL_VECTOR: "65536", + EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: "256", + EPOCHS_PER_SLASHINGS_VECTOR: "8192", + EPOCHS_PER_SYNC_COMMITTEE_PERIOD: "256", + ETH1_FOLLOW_DISTANCE: "16", + GENESIS_DELAY: "300", + GENESIS_FORK_VERSION: "0x70000069", + HISTORICAL_ROOTS_LIMIT: "16777216", + HYSTERESIS_DOWNWARD_MULTIPLIER: "1", + HYSTERESIS_QUOTIENT: "4", + HYSTERESIS_UPWARD_MULTIPLIER: "5", + INACTIVITY_PENALTY_QUOTIENT: "67108864", + INACTIVITY_PENALTY_QUOTIENT_ALTAIR: "50331648", + INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: "16777216", + INACTIVITY_SCORE_BIAS: "4", + INACTIVITY_SCORE_RECOVERY_RATE: "16", + INTERVALS_PER_SLOT: "3", + MAX_ATTESTATIONS: "128", + MAX_ATTESTER_SLASHINGS: "2", + MAX_COMMITTEES_PER_SLOT: "64", + MAX_DEPOSITS: "16", + MAX_EFFECTIVE_BALANCE: "32000000000", + MAX_PROPOSER_SLASHINGS: "16", + MAX_SEED_LOOKAHEAD: "4", + MAX_VALIDATORS_PER_COMMITTEE: "2048", + MAX_VOLUNTARY_EXITS: "16", + MIN_ATTESTATION_INCLUSION_DELAY: "1", + MIN_DEPOSIT_AMOUNT: "1000000000", + MIN_EPOCHS_TO_INACTIVITY_PENALTY: "4", + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: "95000", + MIN_GENESIS_TIME: "1647007200", + MIN_PER_EPOCH_CHURN_LIMIT: "4", + MIN_SEED_LOOKAHEAD: "1", + MIN_SLASHING_PENALTY_QUOTIENT: "128", + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: "64", + MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: "32", + MIN_SYNC_COMMITTEE_PARTICIPANTS: "1", + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: "256", + PRESET_BASE: "mainnet", + PROPORTIONAL_SLASHING_MULTIPLIER: "1", + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: "2", + PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: "3", + PROPOSER_REWARD_QUOTIENT: "8", + PROPOSER_SCORE_BOOST: "70", + PROPOSER_WEIGHT: "8", + RANDOM_SUBNETS_PER_VALIDATOR: "1", + SAFE_SLOTS_TO_IMPORT_OPTIMISTICALLY: "0", + SAFE_SLOTS_TO_UPDATE_JUSTIFIED: "8", + SECONDS_PER_ETH1_BLOCK: "14", + SECONDS_PER_SLOT: "12", + SHARDING_FORK_EPOCH: "18446744073709551615", + SHARDING_FORK_VERSION: "0x03000000", + SHARD_COMMITTEE_PERIOD: "256", + SHUFFLE_ROUND_COUNT: "90", + SLOTS_PER_EPOCH: "32", + SLOTS_PER_HISTORICAL_ROOT: "8192", + SYNC_COMMITTEE_SIZE: "512", + SYNC_COMMITTEE_SUBNET_COUNT: "4", + SYNC_REWARD_WEIGHT: "2", + TARGET_AGGREGATORS_PER_COMMITTEE: "16", + TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: "16", + TARGET_COMMITTEE_SIZE: "128", + TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000", + TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: "18446744073709551615", + TERMINAL_TOTAL_DIFFICULTY: "20000000000000", + TIMELY_HEAD_FLAG_INDEX: "0x02", + TIMELY_HEAD_WEIGHT: "14", + TIMELY_SOURCE_FLAG_INDEX: "0x00", + TIMELY_SOURCE_WEIGHT: "14", + TIMELY_TARGET_FLAG_INDEX: "0x01", + TIMELY_TARGET_WEIGHT: "26", + VALIDATOR_REGISTRY_LIMIT: "1099511627776", + WEIGHT_DENOMINATOR: "64", + WHISTLEBLOWER_REWARD_QUOTIENT: "512", +}; + +export const tekuKilnConfig = { + DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242", + MIN_ATTESTATION_INCLUSION_DELAY: "1", + SLOTS_PER_EPOCH: "32", + PRESET_BASE: "mainnet", + TERMINAL_TOTAL_DIFFICULTY: "20000000000000", + INACTIVITY_SCORE_BIAS: "4", + SHUFFLE_ROUND_COUNT: "90", + TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: "18446744073709551615", + MAX_EFFECTIVE_BALANCE: "32000000000", + DOMAIN_BEACON_PROPOSER: "0x00000000", + DOMAIN_SYNC_COMMITTEE: "0x07000000", + MAX_ATTESTER_SLASHINGS: "2", + DOMAIN_SELECTION_PROOF: "0x05000000", + MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: "32", + INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: "16777216", + INACTIVITY_PENALTY_QUOTIENT: "67108864", + SAFE_SLOTS_TO_UPDATE_JUSTIFIED: "8", + SECONDS_PER_ETH1_BLOCK: "14", + HYSTERESIS_UPWARD_MULTIPLIER: "5", + MIN_SEED_LOOKAHEAD: "1", + VALIDATOR_REGISTRY_LIMIT: "1099511627776", + MIN_DEPOSIT_AMOUNT: "1000000000", + SLOTS_PER_HISTORICAL_ROOT: "8192", + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: "2", + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: "256", + DOMAIN_VOLUNTARY_EXIT: "0x04000000", + TARGET_COMMITTEE_SIZE: "128", + MAX_VALIDATORS_PER_COMMITTEE: "2048", + MIN_GENESIS_TIME: "1647007200", + TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000", + ALTAIR_FORK_EPOCH: "50", + HYSTERESIS_QUOTIENT: "4", + ALTAIR_FORK_VERSION: "0x70000070", + RANDOM_SUBNETS_PER_VALIDATOR: "1", + DOMAIN_DEPOSIT: "0x03000000", + MAX_BYTES_PER_TRANSACTION: "1073741824", + DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000", + UPDATE_TIMEOUT: "8192", + WHISTLEBLOWER_REWARD_QUOTIENT: "512", + PROPOSER_REWARD_QUOTIENT: "8", + DEPOSIT_CHAIN_ID: "1337802", + DOMAIN_RANDAO: "0x02000000", + EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: "256", + EPOCHS_PER_HISTORICAL_VECTOR: "65536", + MIN_PER_EPOCH_CHURN_LIMIT: "4", + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: "64", + TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: "16", + EPOCHS_PER_ETH1_VOTING_PERIOD: "64", + MAX_DEPOSITS: "16", + BELLATRIX_FORK_EPOCH: "150", + HISTORICAL_ROOTS_LIMIT: "16777216", + SYNC_COMMITTEE_SIZE: "512", + TARGET_AGGREGATORS_PER_COMMITTEE: "16", + DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000", + EPOCHS_PER_SLASHINGS_VECTOR: "8192", + MIN_SLASHING_PENALTY_QUOTIENT: "128", + PROPORTIONAL_SLASHING_MULTIPLIER: "1", + MAX_VOLUNTARY_EXITS: "16", + HYSTERESIS_DOWNWARD_MULTIPLIER: "1", + DOMAIN_BEACON_ATTESTER: "0x01000000", + DOMAIN_APPLICATION_BUILDER: "0x10000001", + EPOCHS_PER_SYNC_COMMITTEE_PERIOD: "256", + GENESIS_DELAY: "300", + MAX_SEED_LOOKAHEAD: "4", + BYTES_PER_LOGS_BLOOM: "256", + ETH1_FOLLOW_DISTANCE: "16", + SECONDS_PER_SLOT: "12", + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: "95000", + MIN_SYNC_COMMITTEE_PARTICIPANTS: "1", + MAX_ATTESTATIONS: "128", + BELLATRIX_FORK_VERSION: "0x70000071", + GENESIS_FORK_VERSION: "0x70000069", + DEPOSIT_NETWORK_ID: "1337802", + PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: "3", + SYNC_COMMITTEE_SUBNET_COUNT: "4", + EJECTION_BALANCE: "16000000000", + MAX_COMMITTEES_PER_SLOT: "64", + SHARD_COMMITTEE_PERIOD: "256", + EFFECTIVE_BALANCE_INCREMENT: "1000000000", + INACTIVITY_PENALTY_QUOTIENT_ALTAIR: "50331648", + DOMAIN_AGGREGATE_AND_PROOF: "0x06000000", + MIN_EPOCHS_TO_INACTIVITY_PENALTY: "4", + BASE_REWARD_FACTOR: "64", + MAX_EXTRA_DATA_BYTES: "32", + MAX_PROPOSER_SLASHINGS: "16", + CHURN_LIMIT_QUOTIENT: "65536", + INACTIVITY_SCORE_RECOVERY_RATE: "16", + BLS_WITHDRAWAL_PREFIX: "0x00", + MAX_TRANSACTIONS_PER_PAYLOAD: "1048576", +}; + +export const nimbusKilnConfig = { + MAX_COMMITTEES_PER_SLOT: "64", + TARGET_COMMITTEE_SIZE: "128", + MAX_VALIDATORS_PER_COMMITTEE: "2048", + SHUFFLE_ROUND_COUNT: "90", + HYSTERESIS_QUOTIENT: "4", + HYSTERESIS_DOWNWARD_MULTIPLIER: "1", + HYSTERESIS_UPWARD_MULTIPLIER: "5", + SAFE_SLOTS_TO_UPDATE_JUSTIFIED: "8", + MIN_DEPOSIT_AMOUNT: "1000000000", + MAX_EFFECTIVE_BALANCE: "32000000000", + EFFECTIVE_BALANCE_INCREMENT: "1000000000", + MIN_ATTESTATION_INCLUSION_DELAY: "1", + SLOTS_PER_EPOCH: "32", + MIN_SEED_LOOKAHEAD: "1", + MAX_SEED_LOOKAHEAD: "4", + EPOCHS_PER_ETH1_VOTING_PERIOD: "64", + SLOTS_PER_HISTORICAL_ROOT: "8192", + MIN_EPOCHS_TO_INACTIVITY_PENALTY: "4", + EPOCHS_PER_HISTORICAL_VECTOR: "65536", + EPOCHS_PER_SLASHINGS_VECTOR: "8192", + HISTORICAL_ROOTS_LIMIT: "16777216", + VALIDATOR_REGISTRY_LIMIT: "1099511627776", + BASE_REWARD_FACTOR: "64", + WHISTLEBLOWER_REWARD_QUOTIENT: "512", + PROPOSER_REWARD_QUOTIENT: "8", + INACTIVITY_PENALTY_QUOTIENT: "67108864", + MIN_SLASHING_PENALTY_QUOTIENT: "128", + PROPORTIONAL_SLASHING_MULTIPLIER: "1", + MAX_PROPOSER_SLASHINGS: "16", + MAX_ATTESTER_SLASHINGS: "2", + MAX_ATTESTATIONS: "128", + MAX_DEPOSITS: "16", + MAX_VOLUNTARY_EXITS: "16", + INACTIVITY_PENALTY_QUOTIENT_ALTAIR: "50331648", + MIN_SLASHING_PENALTY_QUOTIENT_ALTAIR: "64", + PROPORTIONAL_SLASHING_MULTIPLIER_ALTAIR: "2", + SYNC_COMMITTEE_SIZE: "512", + EPOCHS_PER_SYNC_COMMITTEE_PERIOD: "256", + MIN_SYNC_COMMITTEE_PARTICIPANTS: "1", + UPDATE_TIMEOUT: "8192", + INACTIVITY_PENALTY_QUOTIENT_BELLATRIX: "16777216", + MIN_SLASHING_PENALTY_QUOTIENT_BELLATRIX: "32", + PROPORTIONAL_SLASHING_MULTIPLIER_BELLATRIX: "3", + MAX_BYTES_PER_TRANSACTION: "1073741824", + MAX_TRANSACTIONS_PER_PAYLOAD: "1048576", + BYTES_PER_LOGS_BLOOM: "256", + MAX_EXTRA_DATA_BYTES: "32", + PRESET_BASE: "mainnet", + CONFIG_NAME: "mainnet", + TERMINAL_TOTAL_DIFFICULTY: "20000000000000", + TERMINAL_BLOCK_HASH: "0x0000000000000000000000000000000000000000000000000000000000000000", + TERMINAL_BLOCK_HASH_ACTIVATION_EPOCH: "18446744073709551615", + MIN_GENESIS_ACTIVE_VALIDATOR_COUNT: "95000", + MIN_GENESIS_TIME: "1647007200", + GENESIS_FORK_VERSION: "0x70000069", + GENESIS_DELAY: "300", + ALTAIR_FORK_VERSION: "0x70000070", + ALTAIR_FORK_EPOCH: "50", + BELLATRIX_FORK_VERSION: "0x70000071", + BELLATRIX_FORK_EPOCH: "150", + SHARDING_FORK_VERSION: "0x03000000", + SHARDING_FORK_EPOCH: "18446744073709551615", + SECONDS_PER_SLOT: "12", + SECONDS_PER_ETH1_BLOCK: "14", + MIN_VALIDATOR_WITHDRAWABILITY_DELAY: "256", + SHARD_COMMITTEE_PERIOD: "256", + ETH1_FOLLOW_DISTANCE: "16", + INACTIVITY_SCORE_BIAS: "4", + INACTIVITY_SCORE_RECOVERY_RATE: "16", + EJECTION_BALANCE: "16000000000", + MIN_PER_EPOCH_CHURN_LIMIT: "4", + CHURN_LIMIT_QUOTIENT: "65536", + PROPOSER_SCORE_BOOST: "70", + DEPOSIT_CHAIN_ID: "1337802", + DEPOSIT_NETWORK_ID: "1337802", + DEPOSIT_CONTRACT_ADDRESS: "0x4242424242424242424242424242424242424242", + BLS_WITHDRAWAL_PREFIX: "0x00", + ETH1_ADDRESS_WITHDRAWAL_PREFIX: "0x01", + DOMAIN_BEACON_PROPOSER: "0x00000000", + DOMAIN_BEACON_ATTESTER: "0x01000000", + DOMAIN_RANDAO: "0x02000000", + DOMAIN_DEPOSIT: "0x03000000", + DOMAIN_VOLUNTARY_EXIT: "0x04000000", + DOMAIN_SELECTION_PROOF: "0x05000000", + DOMAIN_AGGREGATE_AND_PROOF: "0x06000000", + TIMELY_SOURCE_FLAG_INDEX: "0x00", + TIMELY_TARGET_FLAG_INDEX: "0x01", + TIMELY_HEAD_FLAG_INDEX: "0x02", + TIMELY_SOURCE_WEIGHT: "14", + TIMELY_TARGET_WEIGHT: "26", + TIMELY_HEAD_WEIGHT: "14", + SYNC_REWARD_WEIGHT: "2", + PROPOSER_WEIGHT: "8", + WEIGHT_DENOMINATOR: "64", + DOMAIN_SYNC_COMMITTEE: "0x07000000", + DOMAIN_SYNC_COMMITTEE_SELECTION_PROOF: "0x08000000", + DOMAIN_CONTRIBUTION_AND_PROOF: "0x09000000", + TARGET_AGGREGATORS_PER_COMMITTEE: "16", + RANDOM_SUBNETS_PER_VALIDATOR: "1", + EPOCHS_PER_RANDOM_SUBNET_SUBSCRIPTION: "256", + ATTESTATION_SUBNET_COUNT: "64", + TARGET_AGGREGATORS_PER_SYNC_SUBCOMMITTEE: "16", + SYNC_COMMITTEE_SUBNET_COUNT: "4", +}; diff --git a/packages/validator/test/unit/utils/params.test.ts b/packages/validator/test/unit/utils/params.test.ts index c16e14fb9250..b7d4c40a17f6 100644 --- a/packages/validator/test/unit/utils/params.test.ts +++ b/packages/validator/test/unit/utils/params.test.ts @@ -1,7 +1,16 @@ import {expect} from "chai"; -import {chainConfigToJson} from "@lodestar/config"; +import {chainConfigToJson, IChainConfig} from "@lodestar/config"; import {chainConfig} from "@lodestar/config/default"; +import {networksChainConfig} from "@lodestar/config/networks"; import {assertEqualParams, NotEqualParamsError} from "../../../src/util/params.js"; +import {lightHouseKilnConfig, prysmKilnConfig, tekuKilnConfig, nimbusKilnConfig} from "./interopConfigs.js"; + +const testCases: {name: string; items: [IChainConfig, Record]}[] = [ + {name: "lighthouse", items: [networksChainConfig.kiln, lightHouseKilnConfig]}, + {name: "prysm", items: [networksChainConfig.kiln, prysmKilnConfig]}, + {name: "teku", items: [networksChainConfig.kiln, tekuKilnConfig]}, + {name: "nimbus", items: [networksChainConfig.kiln, nimbusKilnConfig]}, +]; describe("utils / params / assertEqualParams", () => { it("default == default", () => { @@ -24,4 +33,10 @@ describe("utils / params / assertEqualParams", () => { delete chainConfigJson["DEPOSIT_CONTRACT_ADDRESS"]; assertEqualParams(chainConfig, chainConfigJson); }); + + for (const {name, items} of testCases) { + it(`${name} kiln == lodestar kiln`, () => { + assertEqualParams(items[0], items[1]); + }); + } });