From eda4471d95b6ba50a413b3fee6df4b2693c35d2b Mon Sep 17 00:00:00 2001 From: Giulio rebuffo Date: Mon, 23 Jan 2023 12:04:50 +0100 Subject: [PATCH] Fixed inconsistencies (#6670) --- cl/cltypes/beacon_block.go | 2 +- cl/cltypes/beacon_block_test.go | 2 +- cl/cltypes/eth1_block.go | 14 +++++++++++++- .../core/transition/beacon_state_utils_test.go | 1 + 4 files changed, 16 insertions(+), 3 deletions(-) diff --git a/cl/cltypes/beacon_block.go b/cl/cltypes/beacon_block.go index 8ef1ba64068..00a80b15270 100644 --- a/cl/cltypes/beacon_block.go +++ b/cl/cltypes/beacon_block.go @@ -431,7 +431,7 @@ func (b *BeaconBody) HashSSZ() ([32]byte, error) { leaves = append(leaves, aggLeaf) } if b.Version >= clparams.BellatrixVersion { - payloadLeaf, err := b.ExecutionPayload.HashSSZ() + payloadLeaf, err := b.ExecutionPayload.HashSSZ(b.Version) if err != nil { return [32]byte{}, err } diff --git a/cl/cltypes/beacon_block_test.go b/cl/cltypes/beacon_block_test.go index bc8ce087db1..378fdb38d45 100644 --- a/cl/cltypes/beacon_block_test.go +++ b/cl/cltypes/beacon_block_test.go @@ -109,7 +109,7 @@ var testBeaconBlockVariation = &cltypes.SignedBeaconBlock{ var ( // Hashes - capellaHash = common.HexToHash("9a5bc717ecaf6a8d6e879478003729b9ce4e71f5c4e9b4bd4dd166780894ee93") + capellaHash = common.HexToHash("0x00a1f1a46f4bcdd9030c11c1cf9a8062cd48478620e6fd3bd3a748263a49433f") bellatrixHash = common.HexToHash("9a5bc717ecaf6a8d6e879478003729b9ce4e71f5c4e9b4bd4dd166780894ee93") altairHash = common.HexToHash("36aa8fe956265d171b7ad740077ea9579e25ed3b2f7b2010016513e4ac4754cb") phase0Hash = common.HexToHash("83dd9e30bf61720822be889abf73760a26fb42dc9fb27fa872f845d68af92bc4") diff --git a/cl/cltypes/eth1_block.go b/cl/cltypes/eth1_block.go index ddb14d0c94b..008da4b37a8 100644 --- a/cl/cltypes/eth1_block.go +++ b/cl/cltypes/eth1_block.go @@ -202,7 +202,19 @@ func (b *Eth1Block) EncodeSSZ(dst []byte, version clparams.StateVersion) ([]byte return buf, nil } -func (b *Eth1Block) HashSSZ() ([32]byte, error) { +func (b *Eth1Block) HashSSZ(version clparams.StateVersion) ([32]byte, error) { + var err error + if b.Header.TxHashSSZ, err = merkle_tree.TransactionsListRoot(b.Body.Transactions); err != nil { + return [32]byte{}, err + } + if version >= clparams.CapellaVersion { + b.Header.WithdrawalsHash = new(libcommon.Hash) + if *b.Header.WithdrawalsHash, err = types.Withdrawals(b.Body.Withdrawals).HashSSZ(16); err != nil { + return [32]byte{}, err + } + } else { + b.Header.WithdrawalsHash = nil + } return b.Header.HashSSZ() } diff --git a/cmd/erigon-cl/core/transition/beacon_state_utils_test.go b/cmd/erigon-cl/core/transition/beacon_state_utils_test.go index af30546d20e..6fcc152c1f5 100644 --- a/cmd/erigon-cl/core/transition/beacon_state_utils_test.go +++ b/cmd/erigon-cl/core/transition/beacon_state_utils_test.go @@ -27,6 +27,7 @@ var ( Bloom: types.Bloom{}, TxHashSSZ: txHashEmpty, }, + Body: &types.RawBody{}, } )