From 17b15cd88ec32b42f6ea2223941be8ce60c1fc49 Mon Sep 17 00:00:00 2001 From: Nico Flaig Date: Fri, 29 Nov 2024 14:15:53 +0100 Subject: [PATCH] fix: correctly get signature from single attestation bytes (#7266) --- packages/beacon-node/src/chain/validation/attestation.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/packages/beacon-node/src/chain/validation/attestation.ts b/packages/beacon-node/src/chain/validation/attestation.ts index d181ea4f26b..b54ae10e8f6 100644 --- a/packages/beacon-node/src/chain/validation/attestation.ts +++ b/packages/beacon-node/src/chain/validation/attestation.ts @@ -46,6 +46,7 @@ import { getAttesterIndexFromSingleAttestationSerialized, getCommitteeIndexFromSingleAttestationSerialized, getSignatureFromAttestationSerialized, + getSignatureFromSingleAttestationSerialized, } from "../../util/sszBytes.js"; import {Result, wrapError} from "../../util/wrapError.js"; import {AttestationError, AttestationErrorCode, GossipAction} from "../errors/index.js"; @@ -480,7 +481,9 @@ async function validateAttestationNoSignatureCheck( let attDataRootHex: RootHex; const signature = attestationOrCache.attestation ? attestationOrCache.attestation.signature - : getSignatureFromAttestationSerialized(attestationOrCache.serializedData); + : !isForkPostElectra(fork) + ? getSignatureFromAttestationSerialized(attestationOrCache.serializedData) + : getSignatureFromSingleAttestationSerialized(attestationOrCache.serializedData); if (signature === null) { throw new AttestationError(GossipAction.REJECT, { code: AttestationErrorCode.INVALID_SERIALIZED_BYTES,