From 9d5389654b9adda8925a4ae663ef9185c4abfff3 Mon Sep 17 00:00:00 2001 From: Etan Kissling Date: Fri, 10 Dec 2021 03:41:57 +0100 Subject: [PATCH] improve consistency of checkpoint read function (#3178) Makes `readSszForkedTrustedSignedBeaconBlock` consistent with `readSszForkedHashedBeaconState`, adjusting the length check to verify the same type that is used for length computation, and using the same formatting. --- beacon_chain/spec/forks.nim | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/beacon_chain/spec/forks.nim b/beacon_chain/spec/forks.nim index 7ae709bc4..900bdc8b5 100644 --- a/beacon_chain/spec/forks.nim +++ b/beacon_chain/spec/forks.nim @@ -450,13 +450,12 @@ func readSszForkedTrustedSignedBeaconBlock*( ForkedTrustedSignedBeaconBlock {.raises: [Defect, SszError].} = ## Helper to read a header from bytes when it's not certain what kind of block ## it is - - if data.len() < sizeof(BeaconBlockHeader): + if data.len() < sizeof(ForkedBeaconBlockHeader): raise (ref MalformedSszError)(msg: "Not enough data for SignedBeaconBlock header") - let header = SSZ.decode( data.toOpenArray(0, sizeof(ForkedBeaconBlockHeader) - 1), ForkedBeaconBlockHeader) + # careful - `result` is used, RVO didn't seem to work without # TODO move time helpers somewhere to avoid circular imports result = ForkedTrustedSignedBeaconBlock(