From b980ccff90a8ed818ce12805e5b35714832fd14c Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Mon, 17 Aug 2026 10:42:14 +0100 Subject: [PATCH 1/4] fix(api): use progressive payload attestation pool response --- packages/api/src/beacon/routes/beacon/pool.ts | 11 ++--------- packages/api/test/unit/beacon/testData/beacon.ts | 5 ++++- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/packages/api/src/beacon/routes/beacon/pool.ts b/packages/api/src/beacon/routes/beacon/pool.ts index 5d0a031771f5..8b202aaec7d6 100644 --- a/packages/api/src/beacon/routes/beacon/pool.ts +++ b/packages/api/src/beacon/routes/beacon/pool.ts @@ -1,13 +1,6 @@ import {ValueOf} from "@chainsafe/ssz"; import {ChainForkConfig} from "@lodestar/config"; -import { - ForkName, - ForkPostElectra, - ForkPreElectra, - MAX_PAYLOAD_ATTESTATIONS, - PTC_SIZE, - isForkPostElectra, -} from "@lodestar/params"; +import {ForkName, ForkPostElectra, ForkPreElectra, PTC_SIZE, isForkPostElectra} from "@lodestar/params"; import { ArrayOf, AttesterSlashing, @@ -44,7 +37,7 @@ const ProposerSlashingListType = ArrayOf(ssz.phase0.ProposerSlashing); const SignedVoluntaryExitListType = ArrayOf(ssz.phase0.SignedVoluntaryExit); const SignedBLSToExecutionChangeListType = ArrayOf(ssz.capella.SignedBLSToExecutionChange); const SyncCommitteeMessageListType = ArrayOf(ssz.altair.SyncCommitteeMessage); -const PayloadAttestationListType = ArrayOf(ssz.gloas.PayloadAttestation, MAX_PAYLOAD_ATTESTATIONS); +const PayloadAttestationListType = ssz.gloas.PayloadAttestations; const PayloadAttestationMessageListType = ArrayOf(ssz.gloas.PayloadAttestationMessage, PTC_SIZE); type AttestationListPhase0 = ValueOf; diff --git a/packages/api/test/unit/beacon/testData/beacon.ts b/packages/api/test/unit/beacon/testData/beacon.ts index b347f7164953..b996b9c4fc78 100644 --- a/packages/api/test/unit/beacon/testData/beacon.ts +++ b/packages/api/test/unit/beacon/testData/beacon.ts @@ -120,7 +120,10 @@ export const testData: GenericServerTestCases = { }, getPoolPayloadAttestations: { args: {slot: 1}, - res: {data: [ssz.gloas.PayloadAttestation.defaultValue()], meta: {version: ForkName.gloas}}, + res: { + data: Array.from({length: 5}, () => ssz.gloas.PayloadAttestation.defaultValue()), + meta: {version: ForkName.gloas}, + }, }, getPoolAttesterSlashingsV2: { args: undefined, From bca6162f5bc3f96517a62e0669fb4b9be7da5353 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Mon, 17 Aug 2026 10:49:37 +0100 Subject: [PATCH 2/4] refactor(api): inline payload attestations type --- packages/api/src/beacon/routes/beacon/pool.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/packages/api/src/beacon/routes/beacon/pool.ts b/packages/api/src/beacon/routes/beacon/pool.ts index 8b202aaec7d6..e000b0ec6d74 100644 --- a/packages/api/src/beacon/routes/beacon/pool.ts +++ b/packages/api/src/beacon/routes/beacon/pool.ts @@ -37,7 +37,6 @@ const ProposerSlashingListType = ArrayOf(ssz.phase0.ProposerSlashing); const SignedVoluntaryExitListType = ArrayOf(ssz.phase0.SignedVoluntaryExit); const SignedBLSToExecutionChangeListType = ArrayOf(ssz.capella.SignedBLSToExecutionChange); const SyncCommitteeMessageListType = ArrayOf(ssz.altair.SyncCommitteeMessage); -const PayloadAttestationListType = ssz.gloas.PayloadAttestations; const PayloadAttestationMessageListType = ArrayOf(ssz.gloas.PayloadAttestationMessage, PTC_SIZE); type AttestationListPhase0 = ValueOf; @@ -52,7 +51,7 @@ type ProposerSlashingList = ValueOf; type SignedVoluntaryExitList = ValueOf; type SignedBLSToExecutionChangeList = ValueOf; type SyncCommitteeMessageList = ValueOf; -type PayloadAttestationList = ValueOf; +type PayloadAttestationList = ValueOf; type PayloadAttestationMessageList = ValueOf; export type Endpoints = { @@ -245,7 +244,7 @@ export function getDefinitions(config: ChainForkConfig): RouteDefinitions Date: Mon, 17 Aug 2026 10:51:13 +0100 Subject: [PATCH 3/4] refactor(api): remove payload attestations response alias --- packages/api/src/beacon/routes/beacon/pool.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/api/src/beacon/routes/beacon/pool.ts b/packages/api/src/beacon/routes/beacon/pool.ts index e000b0ec6d74..9061c9509483 100644 --- a/packages/api/src/beacon/routes/beacon/pool.ts +++ b/packages/api/src/beacon/routes/beacon/pool.ts @@ -51,7 +51,6 @@ type ProposerSlashingList = ValueOf; type SignedVoluntaryExitList = ValueOf; type SignedBLSToExecutionChangeList = ValueOf; type SyncCommitteeMessageList = ValueOf; -type PayloadAttestationList = ValueOf; type PayloadAttestationMessageList = ValueOf; export type Endpoints = { @@ -75,7 +74,7 @@ export type Endpoints = { "GET", {slot?: Slot}, {query: {slot?: number}}, - PayloadAttestationList, + ValueOf, VersionMeta >; From be8a505098052bd1f4a7faad9aeed5535c198a36 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Mon, 17 Aug 2026 11:01:16 +0100 Subject: [PATCH 4/4] refactor(api): restore payload attestations response alias --- packages/api/src/beacon/routes/beacon/pool.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/api/src/beacon/routes/beacon/pool.ts b/packages/api/src/beacon/routes/beacon/pool.ts index 9061c9509483..e000b0ec6d74 100644 --- a/packages/api/src/beacon/routes/beacon/pool.ts +++ b/packages/api/src/beacon/routes/beacon/pool.ts @@ -51,6 +51,7 @@ type ProposerSlashingList = ValueOf; type SignedVoluntaryExitList = ValueOf; type SignedBLSToExecutionChangeList = ValueOf; type SyncCommitteeMessageList = ValueOf; +type PayloadAttestationList = ValueOf; type PayloadAttestationMessageList = ValueOf; export type Endpoints = { @@ -74,7 +75,7 @@ export type Endpoints = { "GET", {slot?: Slot}, {query: {slot?: number}}, - ValueOf, + PayloadAttestationList, VersionMeta >;