diff --git a/packages/api/src/beacon/routes/validator.ts b/packages/api/src/beacon/routes/validator.ts index ef946d5f7352..fb2bfcc4dbcc 100644 --- a/packages/api/src/beacon/routes/validator.ts +++ b/packages/api/src/beacon/routes/validator.ts @@ -1,6 +1,6 @@ import {ContainerType, Type, ValueOf} from "@chainsafe/ssz"; import {ChainForkConfig} from "@lodestar/config"; -import {isForkPostDeneb, isForkPostElectra} from "@lodestar/params"; +import {VALIDATOR_REGISTRY_LIMIT, isForkPostDeneb, isForkPostElectra} from "@lodestar/params"; import { Attestation, BLSSignature, @@ -44,6 +44,7 @@ import { VersionType, } from "../../utils/metadata.js"; import {fromGraffitiHex, toBoolean, toGraffitiHex} from "../../utils/serdes.js"; +import {WireFormat} from "../../utils/wireFormat.js"; export enum BuilderSelection { Default = "default", @@ -209,7 +210,10 @@ export const ProposerPreparationDataListType = ArrayOf(ProposerPreparationDataTy export const BeaconCommitteeSelectionListType = ArrayOf(BeaconCommitteeSelectionType); export const SyncCommitteeSelectionListType = ArrayOf(SyncCommitteeSelectionType); export const LivenessResponseDataListType = ArrayOf(LivenessResponseDataType); -export const SignedValidatorRegistrationV1ListType = ArrayOf(ssz.bellatrix.SignedValidatorRegistrationV1); +export const SignedValidatorRegistrationV1ListType = ArrayOf( + ssz.bellatrix.SignedValidatorRegistrationV1, + VALIDATOR_REGISTRY_LIMIT +); export type ValidatorIndices = ValueOf; export type AttesterDuty = ValueOf; @@ -955,6 +959,9 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions ({body: RegistrationsType.toJson(registrations)}), parseReqJson: ({body}) => ({registrations: RegistrationsType.fromJson(body)}), + writeReqSsz: ({registrations}) => ({body: RegistrationsType.serialize(registrations)}), + parseReqSsz: ({body}) => ({registrations: RegistrationsType.deserialize(body)}), schema: {body: Schema.ObjectArray}, - }), + }, resp: EmptyResponseCodec, + init: { + requestWireFormat: WireFormat.ssz, + }, }, getHeader: { url: "/eth/v1/builder/header/{slot}/{parent_hash}/{pubkey}",