test: bump spec tests to v1.7.0-alpha.12 in eip-7688 branch#9665
Conversation
There was a problem hiding this comment.
Code Review
This pull request updates the consensus spec version from v1.7.0-alpha.11 to v1.7.0-alpha.12 across comments and configuration files. It also introduces ProgressiveByteListType in SSZ generic type tests, skips several new failing tests related to Gloas and fast-confirmation rules, and ignores certain preset/config fields in the sync tests. Feedback is provided to improve type safety and readability in ensure-config-is-synced.test.ts by casting Object.keys(remotePreset) earlier in the chain to avoid redundant type assertions in the reduce callback.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| const filteredRemotePreset: Partial<BeaconPreset> = Object.keys(remotePreset) | ||
| .filter((key) => !ignoredRemotePresetFields.includes(key)) | ||
| .reduce( | ||
| (acc, key) => { | ||
| acc[key as keyof BeaconPreset] = remotePreset[key as keyof BeaconPreset]; | ||
| return acc; | ||
| }, | ||
| {} as Partial<BeaconPreset> | ||
| ); |
There was a problem hiding this comment.
We can improve type safety and readability by casting Object.keys(remotePreset) to (keyof BeaconPreset)[] at the start of the chain. This allows TypeScript to automatically infer the type of key as keyof BeaconPreset, eliminating the need for redundant type assertions (as keyof BeaconPreset) inside the reduce callback.
const filteredRemotePreset: Partial<BeaconPreset> = (Object.keys(remotePreset) as (keyof BeaconPreset)[])
.filter((key) => !ignoredRemotePresetFields.includes(key))
.reduce(
(acc, key) => {
acc[key] = remotePreset[key];
return acc;
},
{} as Partial<BeaconPreset>
);Enable the v1.7.0-alpha.12 consensus-spec-tests on the EIP-7688 branch. With progressive containers in place the gloas ssz_static / state-transition / fork-choice suites pass; the remaining failures are all NOT EIP-7688 related and handled elsewhere: - ALPHA12-MISC (unskip in #9606): builder-deposit / builder-exit processing and the alpha.12 constant bumps (PAYLOAD_DUE_BPS, MIN_BUILDER_WITHDRAWABILITY_DELAY, MAX_BUILDER_DEPOSIT_REQUESTS_PER_PAYLOAD) land on the follow-up alpha.12-misc branch. - FCR rework: gloas fast_confirmation suite + two is_one_confirmed cases. - cell-level DAS: fulu PartialDataColumnGroupID ssz_static. - ssz 1.6.2: consolidations-at-limit hits an @chainsafe/ssz@1.6.1 stack overflow at mainnet scale (issue #9656); clears when ssz 1.6.2 is synced via unstable. Also: - Bump spec-tests-version.json to v1.7.0-alpha.12. - Re-sync ethspecify specrefs to v1.7.0-alpha.12: drop entries for spec objects removed/renamed at alpha.12 (get_dependent_root, get_proposer_dependent_root, get_proposer_preferences_signature, is_epoch_boundary, BUILDER_REGISTRY_LIMIT, BUILDER_PENDING_WITHDRAWALS_LIMIT), source the new gloas/electra SSZ types, gloas p2p size-bound presets, and get_shuffling_dependent_root / get_signed_proposer_preferences / is_valid_indexed_attestation / is_not_epoch_boundary, and except the unimplemented heze + attestation-upgrade + slot-based gindex helpers. `ethspecify check` reports 1144 valid references. - Fix the ProgressiveTestStruct ssz_generic type: field A is ProgressiveList[byte] (a byte list, hex JSON) so it must be ProgressiveByteListType, not ProgressiveListBasicType. Fixes all phase0/ssz_generic/containers/ProgressiveTestStruct cases. Verified green: minimal 55235, mainnet 7185, general 5367, bls 90, config-sync, params-preset; ethspecify check 1144 valid. lint + check-types clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7447d51 to
206114a
Compare
Do the alpha.12 bump in eip-7688 branch.