From e26f2c82d7321ed615e5ce984a891ea051abab4e Mon Sep 17 00:00:00 2001 From: Piers Powlesland Date: Wed, 18 Dec 2024 17:39:15 +0000 Subject: [PATCH 1/2] Revert "Skipped new tests during rebase" This reverts commit d981efbedcc8c247887aaaeb93dd673d3a48785f. --- eth/catalyst/api_test.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/eth/catalyst/api_test.go b/eth/catalyst/api_test.go index f1af881214..665661cf14 100644 --- a/eth/catalyst/api_test.go +++ b/eth/catalyst/api_test.go @@ -1382,7 +1382,6 @@ func allBodies(blocks []*types.Block) []*types.Body { } func TestGetBlockBodiesByHash(t *testing.T) { - t.Skip("Skipped during rebase. Fix by setting gas limit or https://github.com/celo-org/celo-blockchain-planning/issues/588.") node, eth, blocks := setupBodies(t) api := NewConsensusAPI(eth) defer node.Close() @@ -1439,7 +1438,6 @@ func TestGetBlockBodiesByHash(t *testing.T) { } func TestGetBlockBodiesByRange(t *testing.T) { - t.Skip("Skipped during rebase. Fix by setting gas limit or https://github.com/celo-org/celo-blockchain-planning/issues/588.") node, eth, blocks := setupBodies(t) api := NewConsensusAPI(eth) defer node.Close() From 962ad374c182f57b0e4f507335e57a4eff506b1b Mon Sep 17 00:00:00 2001 From: Piers Powlesland Date: Wed, 18 Dec 2024 17:40:33 +0000 Subject: [PATCH 2/2] Update header encoding/decoding A new field 'RequestsHash' was added to the header, and we needed to run go generate to regenerate the generated encoding/decoding and also update celo_block.go to account for the new field. Simplified the encoding and decoding in celo_block.go by simply casting the header into the right type for encoding/decoding. This ensures that we won't need to update celo_block.go in the future when fields are added or removed. --- core/types/celo_block.go | 46 +------------------ .../types/gen_after_gingerbread_header_rlp.go | 26 +++++++++-- 2 files changed, 23 insertions(+), 49 deletions(-) diff --git a/core/types/celo_block.go b/core/types/celo_block.go index 58c332b418..6d74f545e8 100644 --- a/core/types/celo_block.go +++ b/core/types/celo_block.go @@ -61,27 +61,7 @@ func (h *Header) DecodeRLP(s *rlp.Stream) error { // After gingerbread decodedHeader := AfterGingerbreadHeader{} err = rlp.DecodeBytes(raw, &decodedHeader) - - h.ParentHash = decodedHeader.ParentHash - h.UncleHash = decodedHeader.UncleHash - h.Coinbase = decodedHeader.Coinbase - h.Root = decodedHeader.Root - h.TxHash = decodedHeader.TxHash - h.ReceiptHash = decodedHeader.ReceiptHash - h.Bloom = decodedHeader.Bloom - h.Difficulty = decodedHeader.Difficulty - h.Number = decodedHeader.Number - h.GasLimit = decodedHeader.GasLimit - h.GasUsed = decodedHeader.GasUsed - h.Time = decodedHeader.Time - h.Extra = decodedHeader.Extra - h.MixDigest = decodedHeader.MixDigest - h.Nonce = decodedHeader.Nonce - h.BaseFee = decodedHeader.BaseFee - h.WithdrawalsHash = decodedHeader.WithdrawalsHash - h.BlobGasUsed = decodedHeader.BlobGasUsed - h.ExcessBlobGas = decodedHeader.ExcessBlobGas - h.ParentBeaconRoot = decodedHeader.ParentBeaconRoot + *h = Header(decodedHeader) } return err @@ -107,29 +87,7 @@ func (h *Header) EncodeRLP(w io.Writer) error { } // After gingerbread - encodedHeader := AfterGingerbreadHeader{ - ParentHash: h.ParentHash, - UncleHash: h.UncleHash, - Coinbase: h.Coinbase, - Root: h.Root, - TxHash: h.TxHash, - ReceiptHash: h.ReceiptHash, - Bloom: h.Bloom, - Difficulty: h.Difficulty, - Number: h.Number, - GasLimit: h.GasLimit, - GasUsed: h.GasUsed, - Time: h.Time, - Extra: h.Extra, - MixDigest: h.MixDigest, - Nonce: h.Nonce, - BaseFee: h.BaseFee, - WithdrawalsHash: h.WithdrawalsHash, - BlobGasUsed: h.BlobGasUsed, - ExcessBlobGas: h.ExcessBlobGas, - ParentBeaconRoot: h.ParentBeaconRoot, - } - + encodedHeader := AfterGingerbreadHeader(*h) return rlp.Encode(w, &encodedHeader) } diff --git a/core/types/gen_after_gingerbread_header_rlp.go b/core/types/gen_after_gingerbread_header_rlp.go index e0215a4ddb..8aa2892d2c 100644 --- a/core/types/gen_after_gingerbread_header_rlp.go +++ b/core/types/gen_after_gingerbread_header_rlp.go @@ -43,7 +43,8 @@ func (obj *AfterGingerbreadHeader) EncodeRLP(_w io.Writer) error { _tmp3 := obj.BlobGasUsed != nil _tmp4 := obj.ExcessBlobGas != nil _tmp5 := obj.ParentBeaconRoot != nil - if _tmp1 || _tmp2 || _tmp3 || _tmp4 || _tmp5 { + _tmp6 := obj.RequestsHash != nil + if _tmp1 || _tmp2 || _tmp3 || _tmp4 || _tmp5 || _tmp6 { if obj.BaseFee == nil { w.Write(rlp.EmptyString) } else { @@ -53,34 +54,41 @@ func (obj *AfterGingerbreadHeader) EncodeRLP(_w io.Writer) error { w.WriteBigInt(obj.BaseFee) } } - if _tmp2 || _tmp3 || _tmp4 || _tmp5 { + if _tmp2 || _tmp3 || _tmp4 || _tmp5 || _tmp6 { if obj.WithdrawalsHash == nil { w.Write([]byte{0x80}) } else { w.WriteBytes(obj.WithdrawalsHash[:]) } } - if _tmp3 || _tmp4 || _tmp5 { + if _tmp3 || _tmp4 || _tmp5 || _tmp6 { if obj.BlobGasUsed == nil { w.Write([]byte{0x80}) } else { w.WriteUint64((*obj.BlobGasUsed)) } } - if _tmp4 || _tmp5 { + if _tmp4 || _tmp5 || _tmp6 { if obj.ExcessBlobGas == nil { w.Write([]byte{0x80}) } else { w.WriteUint64((*obj.ExcessBlobGas)) } } - if _tmp5 { + if _tmp5 || _tmp6 { if obj.ParentBeaconRoot == nil { w.Write([]byte{0x80}) } else { w.WriteBytes(obj.ParentBeaconRoot[:]) } } + if _tmp6 { + if obj.RequestsHash == nil { + w.Write([]byte{0x80}) + } else { + w.WriteBytes(obj.RequestsHash[:]) + } + } w.ListEnd(_tmp0) return w.Flush() } @@ -216,6 +224,14 @@ func (obj *AfterGingerbreadHeader) DecodeRLP(dec *rlp.Stream) error { return err } _tmp0.ParentBeaconRoot = &_tmp20 + // RequestsHash: + if dec.MoreDataInList() { + var _tmp21 common.Hash + if err := dec.ReadBytes(_tmp21[:]); err != nil { + return err + } + _tmp0.RequestsHash = &_tmp21 + } } } }