Skip to content

Commit 37d90b9

Browse files
MariusVanDerWijdenshekhirin
authored andcommittedJun 6, 2023
eth/catalyst: fix races (ethereum#26950)
1 parent 4bd4d54 commit 37d90b9

File tree

1 file changed

+27
-9
lines changed

1 file changed

+27
-9
lines changed
 

‎eth/catalyst/api_test.go

+27-9
Original file line numberDiff line numberDiff line change
@@ -879,15 +879,10 @@ func TestNewPayloadOnInvalidTerminalBlock(t *testing.T) {
879879
genesis, preMergeBlocks := generateMergeChain(100, false)
880880
n, ethservice := startEthService(t, genesis, preMergeBlocks)
881881
defer n.Close()
882-
883-
ethservice.BlockChain().Config().TerminalTotalDifficulty = preMergeBlocks[0].Difficulty() //.Sub(genesis.Config.TerminalTotalDifficulty, preMergeBlocks[len(preMergeBlocks)-1].Difficulty())
884-
885-
var (
886-
api = NewConsensusAPI(ethservice)
887-
parent = preMergeBlocks[len(preMergeBlocks)-1]
888-
)
882+
api := NewConsensusAPI(ethservice)
889883

890884
// Test parent already post TTD in FCU
885+
parent := preMergeBlocks[len(preMergeBlocks)-2]
891886
fcState := engine.ForkchoiceStateV1{
892887
HeadBlockHash: parent.Hash(),
893888
SafeBlockHash: common.Hash{},
@@ -913,6 +908,28 @@ func TestNewPayloadOnInvalidTerminalBlock(t *testing.T) {
913908
t.Fatalf("error preparing payload, err=%v", err)
914909
}
915910
data := *payload.Resolve().ExecutionPayload
911+
// We need to recompute the blockhash, since the miner computes a wrong (correct) blockhash
912+
txs, _ := decodeTransactions(data.Transactions)
913+
header := &types.Header{
914+
ParentHash: data.ParentHash,
915+
UncleHash: types.EmptyUncleHash,
916+
Coinbase: data.FeeRecipient,
917+
Root: data.StateRoot,
918+
TxHash: types.DeriveSha(types.Transactions(txs), trie.NewStackTrie(nil)),
919+
ReceiptHash: data.ReceiptsRoot,
920+
Bloom: types.BytesToBloom(data.LogsBloom),
921+
Difficulty: common.Big0,
922+
Number: new(big.Int).SetUint64(data.Number),
923+
GasLimit: data.GasLimit,
924+
GasUsed: data.GasUsed,
925+
Time: data.Timestamp,
926+
BaseFee: data.BaseFeePerGas,
927+
Extra: data.ExtraData,
928+
MixDigest: data.Random,
929+
}
930+
block := types.NewBlockWithHeader(header).WithBody(txs, nil /* uncles */)
931+
data.BlockHash = block.Hash()
932+
// Send the new payload
916933
resp2, err := api.NewPayloadV1(data)
917934
if err != nil {
918935
t.Fatalf("error sending NewPayload, err=%v", err)
@@ -1240,9 +1257,10 @@ func TestNilWithdrawals(t *testing.T) {
12401257

12411258
func setupBodies(t *testing.T) (*node.Node, *eth.Ethereum, []*types.Block) {
12421259
genesis, blocks := generateMergeChain(10, true)
1243-
n, ethservice := startEthService(t, genesis, blocks)
12441260
// enable shanghai on the last block
1245-
ethservice.BlockChain().Config().ShanghaiTime = &blocks[len(blocks)-1].Header().Time
1261+
time := blocks[len(blocks)-1].Header().Time + 1
1262+
genesis.Config.ShanghaiTime = &time
1263+
n, ethservice := startEthService(t, genesis, blocks)
12461264

12471265
var (
12481266
parent = ethservice.BlockChain().CurrentBlock()

0 commit comments

Comments
 (0)