From fdaa7015ef6c28fd824b8fc3ad73455dbdcf7eed Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 24 Oct 2024 22:23:28 +0200 Subject: [PATCH 1/6] all: remove empty items in requests commitment --- beacon/engine/types.go | 21 ++------------------- cmd/evm/internal/t8ntool/execution.go | 16 ++++++++++++---- core/chain_makers.go | 13 ++++++++++--- core/genesis.go | 4 +--- core/state_processor.go | 19 ++++++++++++++++--- core/types/hashes.go | 3 +++ miner/worker.go | 13 ++++++++++--- 7 files changed, 54 insertions(+), 35 deletions(-) diff --git a/beacon/engine/types.go b/beacon/engine/types.go index 9f41aa04ca52..984090ef89b1 100644 --- a/beacon/engine/types.go +++ b/beacon/engine/types.go @@ -265,15 +265,7 @@ func ExecutableDataToBlockNoHash(data ExecutableData, versionedHashes []common.H var requestsHash *common.Hash if requests != nil { - // Put back request type byte. - typedRequests := make([][]byte, len(requests)) - for i, reqdata := range requests { - typedReqdata := make([]byte, len(reqdata)+1) - typedReqdata[0] = byte(i) - copy(typedReqdata[1:], reqdata) - typedRequests[i] = typedReqdata - } - h := types.CalcRequestsHash(typedRequests) + h := types.CalcRequestsHash(requests) requestsHash = &h } @@ -343,20 +335,11 @@ func BlockToExecutableData(block *types.Block, fees *big.Int, sidecars []*types. } } - // Remove type byte in requests. - var plainRequests [][]byte - if requests != nil { - plainRequests = make([][]byte, len(requests)) - for i, reqdata := range requests { - plainRequests[i] = reqdata[1:] - } - } - return &ExecutionPayloadEnvelope{ ExecutionPayload: data, BlockValue: fees, BlobsBundle: &bundle, - Requests: plainRequests, + Requests: requests, Override: false, } } diff --git a/cmd/evm/internal/t8ntool/execution.go b/cmd/evm/internal/t8ntool/execution.go index c0623a69bfc8..f4c0924c35b8 100644 --- a/cmd/evm/internal/t8ntool/execution.go +++ b/cmd/evm/internal/t8ntool/execution.go @@ -366,6 +366,7 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig, // Gather the execution-layer triggered requests. var requests [][]byte if chainConfig.IsPrague(vmContext.BlockNumber, vmContext.Time) { + requests = [][]byte{} // EIP-6110 deposits var allLogs []*types.Log for _, receipt := range receipts { @@ -375,12 +376,19 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig, if err != nil { return nil, nil, nil, NewError(ErrorEVM, fmt.Errorf("could not parse requests logs: %v", err)) } - requests = append(requests, depositRequests) - + if depositRequests != nil { + requests = append(requests, depositRequests) + } // EIP-7002 withdrawals - requests = append(requests, core.ProcessWithdrawalQueue(evm)) + withdrawalRequests := core.ProcessWithdrawalQueue(evm) + if withdrawalRequests != nil { + requests = append(requests, withdrawalRequests) + } // EIP-7251 consolidations - requests = append(requests, core.ProcessConsolidationQueue(evm)) + consolidationRequests := core.ProcessConsolidationQueue(evm) + if consolidationRequests != nil { + requests = append(requests, consolidationRequests) + } } // Commit block diff --git a/core/chain_makers.go b/core/chain_makers.go index e679a9e55700..47002859875d 100644 --- a/core/chain_makers.go +++ b/core/chain_makers.go @@ -349,6 +349,7 @@ func GenerateChain(config *params.ChainConfig, parent *types.Block, engine conse var requests [][]byte if config.IsPrague(b.header.Number, b.header.Time) { + requests = [][]byte{} // EIP-6110 deposits var blockLogs []*types.Log for _, r := range b.receipts { @@ -358,16 +359,22 @@ func GenerateChain(config *params.ChainConfig, parent *types.Block, engine conse if err != nil { panic(fmt.Sprintf("failed to parse deposit log: %v", err)) } - requests = append(requests, depositRequests) + if depositRequests != nil { + requests = append(requests, depositRequests) + } // create EVM for system calls blockContext := NewEVMBlockContext(b.header, cm, &b.header.Coinbase) evm := vm.NewEVM(blockContext, statedb, cm.config, vm.Config{}) // EIP-7002 withdrawals withdrawalRequests := ProcessWithdrawalQueue(evm) - requests = append(requests, withdrawalRequests) + if withdrawalRequests != nil { + requests = append(requests, withdrawalRequests) + } // EIP-7251 consolidations consolidationRequests := ProcessConsolidationQueue(evm) - requests = append(requests, consolidationRequests) + if consolidationRequests != nil { + requests = append(requests, consolidationRequests) + } } if requests != nil { reqHash := types.CalcRequestsHash(requests) diff --git a/core/genesis.go b/core/genesis.go index eff92084ebad..85ef049ba6cf 100644 --- a/core/genesis.go +++ b/core/genesis.go @@ -472,9 +472,7 @@ func (g *Genesis) toBlockWithRoot(root common.Hash) *types.Block { } } if conf.IsPrague(num, g.Timestamp) { - emptyRequests := [][]byte{{0x00}, {0x01}, {0x02}} - rhash := types.CalcRequestsHash(emptyRequests) - head.RequestsHash = &rhash + head.RequestsHash = &types.EmptyRequestsHash } } return types.NewBlock(head, &types.Body{Withdrawals: withdrawals}, nil, trie.NewStackTrie(nil)) diff --git a/core/state_processor.go b/core/state_processor.go index 170337711148..fe1a09e01011 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -106,18 +106,25 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg // Read requests if Prague is enabled. var requests [][]byte if p.config.IsPrague(block.Number(), block.Time()) { + requests = [][]byte{} // EIP-6110 deposits depositRequests, err := ParseDepositLogs(allLogs, p.config) if err != nil { return nil, err } - requests = append(requests, depositRequests) + if depositRequests != nil { + requests = append(requests, depositRequests) + } // EIP-7002 withdrawals withdrawalRequests := ProcessWithdrawalQueue(evm) - requests = append(requests, withdrawalRequests) + if withdrawalRequests != nil { + requests = append(requests, withdrawalRequests) + } // EIP-7251 consolidations consolidationRequests := ProcessConsolidationQueue(evm) - requests = append(requests, consolidationRequests) + if consolidationRequests != nil { + requests = append(requests, consolidationRequests) + } } // Finalize the block, applying any consensus engine specific extras (e.g. block rewards) @@ -302,6 +309,9 @@ func processRequestsSystemCall(evm *vm.EVM, requestType byte, addr common.Addres evm.StateDB.AddAddressToAccessList(addr) ret, _, _ := evm.Call(vm.AccountRef(msg.From), *msg.To, msg.Data, 30_000_000, common.U2560) evm.StateDB.Finalise(true) + if len(ret) == 0 { + return nil + } // Create withdrawals requestsData with prefix 0x01 requestsData := make([]byte, len(ret)+1) @@ -323,5 +333,8 @@ func ParseDepositLogs(logs []*types.Log, config *params.ChainConfig) ([]byte, er deposits = append(deposits, request...) } } + if len(deposits) == 1 { + deposits = nil + } return deposits, nil } diff --git a/core/types/hashes.go b/core/types/hashes.go index 43e9130fd170..55506d63d0b7 100644 --- a/core/types/hashes.go +++ b/core/types/hashes.go @@ -41,6 +41,9 @@ var ( // EmptyWithdrawalsHash is the known hash of the empty withdrawal set. EmptyWithdrawalsHash = common.HexToHash("56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421") + // EmptyRequestsHash is the known hash of an empty request set, sha256(""). + EmptyRequestsHash = common.HexToHash("e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855") + // EmptyVerkleHash is the known hash of an empty verkle trie. EmptyVerkleHash = common.Hash{} ) diff --git a/miner/worker.go b/miner/worker.go index aeb6cfcdc229..cd1496417e4a 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -121,18 +121,25 @@ func (miner *Miner) generateWork(params *generateParams, witness bool) *newPaylo // Collect consensus-layer requests if Prague is enabled. var requests [][]byte if miner.chainConfig.IsPrague(work.header.Number, work.header.Time) { + requests = [][]byte{} // EIP-6110 deposits depositRequests, err := core.ParseDepositLogs(allLogs, miner.chainConfig) if err != nil { return &newPayloadResult{err: err} } - requests = append(requests, depositRequests) + if depositRequests != nil { + requests = append(requests, depositRequests) + } // EIP-7002 withdrawals withdrawalRequests := core.ProcessWithdrawalQueue(work.evm) - requests = append(requests, withdrawalRequests) + if withdrawalRequests != nil { + requests = append(requests, withdrawalRequests) + } // EIP-7251 consolidations consolidationRequests := core.ProcessConsolidationQueue(work.evm) - requests = append(requests, consolidationRequests) + if consolidationRequests != nil { + requests = append(requests, consolidationRequests) + } } if requests != nil { reqHash := types.CalcRequestsHash(requests) From 9fb1a781ee0cd98ed8fa543ab1902ba738f4aebc Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 24 Oct 2024 22:40:22 +0200 Subject: [PATCH 2/6] all: simplify requests --- cmd/evm/internal/t8ntool/execution.go | 22 ++++-------- core/chain_makers.go | 20 +++-------- core/state_processor.go | 52 ++++++++++++++------------- miner/worker.go | 18 +++------- 4 files changed, 43 insertions(+), 69 deletions(-) diff --git a/cmd/evm/internal/t8ntool/execution.go b/cmd/evm/internal/t8ntool/execution.go index f4c0924c35b8..1dcc6ac48ecd 100644 --- a/cmd/evm/internal/t8ntool/execution.go +++ b/cmd/evm/internal/t8ntool/execution.go @@ -367,28 +367,18 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig, var requests [][]byte if chainConfig.IsPrague(vmContext.BlockNumber, vmContext.Time) { requests = [][]byte{} - // EIP-6110 deposits + // EIP-6110 var allLogs []*types.Log for _, receipt := range receipts { allLogs = append(allLogs, receipt.Logs...) } - depositRequests, err := core.ParseDepositLogs(allLogs, chainConfig) - if err != nil { + if err := ParseDepositLogs(&requests, allLogs, p.config); err != nil { return nil, nil, nil, NewError(ErrorEVM, fmt.Errorf("could not parse requests logs: %v", err)) } - if depositRequests != nil { - requests = append(requests, depositRequests) - } - // EIP-7002 withdrawals - withdrawalRequests := core.ProcessWithdrawalQueue(evm) - if withdrawalRequests != nil { - requests = append(requests, withdrawalRequests) - } - // EIP-7251 consolidations - consolidationRequests := core.ProcessConsolidationQueue(evm) - if consolidationRequests != nil { - requests = append(requests, consolidationRequests) - } + // EIP-7002 + core.ProcessWithdrawalQueue(&requests, evm) + // EIP-7251 + core.ProcessConsolidationQueue(&requests, evm) } // Commit block diff --git a/core/chain_makers.go b/core/chain_makers.go index 47002859875d..97c785d52b48 100644 --- a/core/chain_makers.go +++ b/core/chain_makers.go @@ -355,26 +355,16 @@ func GenerateChain(config *params.ChainConfig, parent *types.Block, engine conse for _, r := range b.receipts { blockLogs = append(blockLogs, r.Logs...) } - depositRequests, err := ParseDepositLogs(blockLogs, config) - if err != nil { + if err := ParseDepositLogs(&requests, blockLogs, config); err != nil { panic(fmt.Sprintf("failed to parse deposit log: %v", err)) } - if depositRequests != nil { - requests = append(requests, depositRequests) - } // create EVM for system calls blockContext := NewEVMBlockContext(b.header, cm, &b.header.Coinbase) evm := vm.NewEVM(blockContext, statedb, cm.config, vm.Config{}) - // EIP-7002 withdrawals - withdrawalRequests := ProcessWithdrawalQueue(evm) - if withdrawalRequests != nil { - requests = append(requests, withdrawalRequests) - } - // EIP-7251 consolidations - consolidationRequests := ProcessConsolidationQueue(evm) - if consolidationRequests != nil { - requests = append(requests, consolidationRequests) - } + // EIP-7002 + ProcessWithdrawalQueue(&requests, evm) + // EIP-7251 + ProcessConsolidationQueue(&requests, evm) } if requests != nil { reqHash := types.CalcRequestsHash(requests) diff --git a/core/state_processor.go b/core/state_processor.go index fe1a09e01011..8419d50e4cdf 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -107,24 +107,14 @@ func (p *StateProcessor) Process(block *types.Block, statedb *state.StateDB, cfg var requests [][]byte if p.config.IsPrague(block.Number(), block.Time()) { requests = [][]byte{} - // EIP-6110 deposits - depositRequests, err := ParseDepositLogs(allLogs, p.config) - if err != nil { + // EIP-6110 + if err := ParseDepositLogs(&requests, allLogs, p.config); err != nil { return nil, err } - if depositRequests != nil { - requests = append(requests, depositRequests) - } - // EIP-7002 withdrawals - withdrawalRequests := ProcessWithdrawalQueue(evm) - if withdrawalRequests != nil { - requests = append(requests, withdrawalRequests) - } - // EIP-7251 consolidations - consolidationRequests := ProcessConsolidationQueue(evm) - if consolidationRequests != nil { - requests = append(requests, consolidationRequests) - } + // EIP-7002 + ProcessWithdrawalQueue(&requests, evm) + // EIP-7251 + ProcessConsolidationQueue(&requests, evm) } // Finalize the block, applying any consensus engine specific extras (e.g. block rewards) @@ -278,18 +268,32 @@ func ProcessParentBlockHash(prevHash common.Hash, evm *vm.EVM) { // ProcessWithdrawalQueue calls the EIP-7002 withdrawal queue contract. // It returns the opaque request data returned by the contract. +<<<<<<< HEAD func ProcessWithdrawalQueue(evm *vm.EVM) []byte { return processRequestsSystemCall(evm, 0x01, params.WithdrawalQueueAddress) +======= +func ProcessWithdrawalQueue(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB) { + processRequestsSystemCall(requests, vmenv, statedb, 0x01, params.WithdrawalQueueAddress) +>>>>>>> 7481705901 (all: simplify requests) } // ProcessConsolidationQueue calls the EIP-7251 consolidation queue contract. // It returns the opaque request data returned by the contract. +<<<<<<< HEAD func ProcessConsolidationQueue(evm *vm.EVM) []byte { return processRequestsSystemCall(evm, 0x02, params.ConsolidationQueueAddress) } func processRequestsSystemCall(evm *vm.EVM, requestType byte, addr common.Address) []byte { if tracer := evm.Config.Tracer; tracer != nil { +======= +func ProcessConsolidationQueue(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB) { + processRequestsSystemCall(requests, vmenv, statedb, 0x02, params.ConsolidationQueueAddress) +} + +func processRequestsSystemCall(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB, requestType byte, addr common.Address) { + if tracer := vmenv.Config.Tracer; tracer != nil { +>>>>>>> 7481705901 (all: simplify requests) if tracer.OnSystemCallStart != nil { tracer.OnSystemCallStart() } @@ -310,31 +314,31 @@ func processRequestsSystemCall(evm *vm.EVM, requestType byte, addr common.Addres ret, _, _ := evm.Call(vm.AccountRef(msg.From), *msg.To, msg.Data, 30_000_000, common.U2560) evm.StateDB.Finalise(true) if len(ret) == 0 { - return nil + return // skip empty output } - // Create withdrawals requestsData with prefix 0x01 + // Append prefixed requestsData to the requests list. requestsData := make([]byte, len(ret)+1) requestsData[0] = requestType copy(requestsData[1:], ret) - return requestsData + *requests = append(*requests, requestsData) } // ParseDepositLogs extracts the EIP-6110 deposit values from logs emitted by // BeaconDepositContract. -func ParseDepositLogs(logs []*types.Log, config *params.ChainConfig) ([]byte, error) { +func ParseDepositLogs(requests *[][]byte, logs []*types.Log, config *params.ChainConfig) error { deposits := make([]byte, 1) // note: first byte is 0x00 (== deposit request type) for _, log := range logs { if log.Address == config.DepositContractAddress { request, err := types.DepositLogToRequest(log.Data) if err != nil { - return nil, fmt.Errorf("unable to parse deposit data: %v", err) + return fmt.Errorf("unable to parse deposit data: %v", err) } deposits = append(deposits, request...) } } - if len(deposits) == 1 { - deposits = nil + if len(deposits) > 1 { + *requests = append(*requests, deposits) } - return deposits, nil + return nil } diff --git a/miner/worker.go b/miner/worker.go index cd1496417e4a..b5aa08002591 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -123,23 +123,13 @@ func (miner *Miner) generateWork(params *generateParams, witness bool) *newPaylo if miner.chainConfig.IsPrague(work.header.Number, work.header.Time) { requests = [][]byte{} // EIP-6110 deposits - depositRequests, err := core.ParseDepositLogs(allLogs, miner.chainConfig) - if err != nil { + if err := core.ParseDepositLogs(&requests, allLogs, miner.chainConfig); err != nil { return &newPayloadResult{err: err} } - if depositRequests != nil { - requests = append(requests, depositRequests) - } - // EIP-7002 withdrawals - withdrawalRequests := core.ProcessWithdrawalQueue(work.evm) - if withdrawalRequests != nil { - requests = append(requests, withdrawalRequests) - } + // EIP-7002 + core.ProcessWithdrawalQueue(&requests, work.evm) // EIP-7251 consolidations - consolidationRequests := core.ProcessConsolidationQueue(work.evm) - if consolidationRequests != nil { - requests = append(requests, consolidationRequests) - } + core.ProcessConsolidationQueue(&requests, work.evm) } if requests != nil { reqHash := types.CalcRequestsHash(requests) From 76b9a428d4834fdd9498cde8a0b56467146520a5 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 31 Oct 2024 21:15:02 +0100 Subject: [PATCH 3/6] cmd/evm/internal/t8ntool: fix execution --- cmd/evm/internal/t8ntool/execution.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/evm/internal/t8ntool/execution.go b/cmd/evm/internal/t8ntool/execution.go index 1dcc6ac48ecd..6034b0d33a19 100644 --- a/cmd/evm/internal/t8ntool/execution.go +++ b/cmd/evm/internal/t8ntool/execution.go @@ -372,7 +372,7 @@ func (pre *Prestate) Apply(vmConfig vm.Config, chainConfig *params.ChainConfig, for _, receipt := range receipts { allLogs = append(allLogs, receipt.Logs...) } - if err := ParseDepositLogs(&requests, allLogs, p.config); err != nil { + if err := core.ParseDepositLogs(&requests, allLogs, chainConfig); err != nil { return nil, nil, nil, NewError(ErrorEVM, fmt.Errorf("could not parse requests logs: %v", err)) } // EIP-7002 From 1cea4eec2c21f6503f43e4c529605bdcdf618872 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 31 Oct 2024 21:15:45 +0100 Subject: [PATCH 4/6] internal/ethapi: regenerate testdata --- .../testdata/eth_getBlockReceipts-block-with-blob-tx.json | 2 +- .../eth_getBlockReceipts-block-with-contract-create-tx.json | 2 +- .../eth_getBlockReceipts-block-with-dynamic-fee-tx.json | 2 +- ...h_getBlockReceipts-block-with-legacy-contract-call-tx.json | 4 ++-- .../eth_getBlockReceipts-block-with-legacy-transfer-tx.json | 2 +- internal/ethapi/testdata/eth_getBlockReceipts-tag-latest.json | 2 +- .../ethapi/testdata/eth_getTransactionReceipt-blob-tx.json | 2 +- .../eth_getTransactionReceipt-create-contract-tx.json | 2 +- ...etTransactionReceipt-create-contract-with-access-list.json | 2 +- .../eth_getTransactionReceipt-dynamic-tx-with-logs.json | 2 +- .../eth_getTransactionReceipt-normal-transfer-tx.json | 2 +- .../ethapi/testdata/eth_getTransactionReceipt-with-logs.json | 4 ++-- 12 files changed, 14 insertions(+), 14 deletions(-) diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-blob-tx.json b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-blob-tx.json index d315353ec67e..df2d9349fb0a 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-blob-tx.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-blob-tx.json @@ -2,7 +2,7 @@ { "blobGasPrice": "0x1", "blobGasUsed": "0x20000", - "blockHash": "0x11e6318d77a45c01f89f76b56d36c6936c5250f4e2bd238cb7b09df73cf0cb7d", + "blockHash": "0x17124e31fb075a301b1d7d4135683b0a09fe4e6d453c54e2e734d5ee00744a49", "blockNumber": "0x6", "contractAddress": null, "cumulativeGasUsed": "0x5208", diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-contract-create-tx.json b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-contract-create-tx.json index f2e5ced2be0a..453e0abe8a55 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-contract-create-tx.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-contract-create-tx.json @@ -1,6 +1,6 @@ [ { - "blockHash": "0x5526cd89bc188f20fd5e9bb50d8054dc5a51a81a74ed07eacf36a4a8b10de4b1", + "blockHash": "0xb3e447c77374fd285964cba692e96b1673a88a959726826b5b6e2dca15472b0a", "blockNumber": "0x2", "contractAddress": "0xae9bea628c4ce503dcfd7e305cab4e29e7476592", "cumulativeGasUsed": "0xcf50", diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-dynamic-fee-tx.json b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-dynamic-fee-tx.json index 71afd85e5454..b01400e60546 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-dynamic-fee-tx.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-dynamic-fee-tx.json @@ -1,6 +1,6 @@ [ { - "blockHash": "0x3e946aa9e252873af511b257d9d89a1bcafa54ce7c6a6442f8407ecdf81e288d", + "blockHash": "0x102e50de30318ee99a03a09db74387e79cad3165bf6840cc84249806a2a302f3", "blockNumber": "0x4", "contractAddress": null, "cumulativeGasUsed": "0x538d", diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-contract-call-tx.json b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-contract-call-tx.json index f089ac45ae35..ae964b3d3b46 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-contract-call-tx.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-contract-call-tx.json @@ -1,6 +1,6 @@ [ { - "blockHash": "0xc281d4299fc4e8ce5bba7ecb8deb50f5403d604c806b36aa887dfe2ff84c064f", + "blockHash": "0xcc6225bf39327429a3d869af71182d619a354155187d0b5a8ecd6a9309cffcaa", "blockNumber": "0x3", "contractAddress": null, "cumulativeGasUsed": "0x5e28", @@ -19,7 +19,7 @@ "blockNumber": "0x3", "transactionHash": "0xeaf3921cbf03ba45bad4e6ab807b196ce3b2a0b5bacc355b6272fa96b11b4287", "transactionIndex": "0x0", - "blockHash": "0xc281d4299fc4e8ce5bba7ecb8deb50f5403d604c806b36aa887dfe2ff84c064f", + "blockHash": "0xcc6225bf39327429a3d869af71182d619a354155187d0b5a8ecd6a9309cffcaa", "logIndex": "0x0", "removed": false } diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-transfer-tx.json b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-transfer-tx.json index 8b69dddd664c..7af501607968 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-transfer-tx.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-block-with-legacy-transfer-tx.json @@ -1,6 +1,6 @@ [ { - "blockHash": "0xda50d57d8802553b00bb8e4d777bd5c4114086941119ca04edb15429f4818ed9", + "blockHash": "0xe9bd1d8c303b1af5c704b9d78e62c54a34af47e0db04ac1389a5ef74a619b9da", "blockNumber": "0x1", "contractAddress": null, "cumulativeGasUsed": "0x5208", diff --git a/internal/ethapi/testdata/eth_getBlockReceipts-tag-latest.json b/internal/ethapi/testdata/eth_getBlockReceipts-tag-latest.json index d315353ec67e..df2d9349fb0a 100644 --- a/internal/ethapi/testdata/eth_getBlockReceipts-tag-latest.json +++ b/internal/ethapi/testdata/eth_getBlockReceipts-tag-latest.json @@ -2,7 +2,7 @@ { "blobGasPrice": "0x1", "blobGasUsed": "0x20000", - "blockHash": "0x11e6318d77a45c01f89f76b56d36c6936c5250f4e2bd238cb7b09df73cf0cb7d", + "blockHash": "0x17124e31fb075a301b1d7d4135683b0a09fe4e6d453c54e2e734d5ee00744a49", "blockNumber": "0x6", "contractAddress": null, "cumulativeGasUsed": "0x5208", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-blob-tx.json b/internal/ethapi/testdata/eth_getTransactionReceipt-blob-tx.json index 5debbd44478e..8e0669d10a55 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-blob-tx.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-blob-tx.json @@ -1,7 +1,7 @@ { "blobGasPrice": "0x1", "blobGasUsed": "0x20000", - "blockHash": "0x11e6318d77a45c01f89f76b56d36c6936c5250f4e2bd238cb7b09df73cf0cb7d", + "blockHash": "0x17124e31fb075a301b1d7d4135683b0a09fe4e6d453c54e2e734d5ee00744a49", "blockNumber": "0x6", "contractAddress": null, "cumulativeGasUsed": "0x5208", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-tx.json b/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-tx.json index 8cf2ead10ff7..a9391cb578a9 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-tx.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-tx.json @@ -1,5 +1,5 @@ { - "blockHash": "0x5526cd89bc188f20fd5e9bb50d8054dc5a51a81a74ed07eacf36a4a8b10de4b1", + "blockHash": "0xb3e447c77374fd285964cba692e96b1673a88a959726826b5b6e2dca15472b0a", "blockNumber": "0x2", "contractAddress": "0xae9bea628c4ce503dcfd7e305cab4e29e7476592", "cumulativeGasUsed": "0xcf50", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-with-access-list.json b/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-with-access-list.json index 34c318facab4..49c06aad62fb 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-with-access-list.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-create-contract-with-access-list.json @@ -1,5 +1,5 @@ { - "blockHash": "0xa04ad6be58c45fe483991b89416572bc50426b0de44b769757e95c704250f874", + "blockHash": "0x53bffe54375c0a31fe7bc0db7455db7d48278234c2400efa4d40d1c57cbe868d", "blockNumber": "0x5", "contractAddress": "0xfdaa97661a584d977b4d3abb5370766ff5b86a18", "cumulativeGasUsed": "0xe01c", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-dynamic-tx-with-logs.json b/internal/ethapi/testdata/eth_getTransactionReceipt-dynamic-tx-with-logs.json index 9f023ed6e3a8..13bd7bd12c12 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-dynamic-tx-with-logs.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-dynamic-tx-with-logs.json @@ -1,5 +1,5 @@ { - "blockHash": "0x3e946aa9e252873af511b257d9d89a1bcafa54ce7c6a6442f8407ecdf81e288d", + "blockHash": "0x102e50de30318ee99a03a09db74387e79cad3165bf6840cc84249806a2a302f3", "blockNumber": "0x4", "contractAddress": null, "cumulativeGasUsed": "0x538d", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-normal-transfer-tx.json b/internal/ethapi/testdata/eth_getTransactionReceipt-normal-transfer-tx.json index f180a219773f..779223af98d8 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-normal-transfer-tx.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-normal-transfer-tx.json @@ -1,5 +1,5 @@ { - "blockHash": "0xda50d57d8802553b00bb8e4d777bd5c4114086941119ca04edb15429f4818ed9", + "blockHash": "0xe9bd1d8c303b1af5c704b9d78e62c54a34af47e0db04ac1389a5ef74a619b9da", "blockNumber": "0x1", "contractAddress": null, "cumulativeGasUsed": "0x5208", diff --git a/internal/ethapi/testdata/eth_getTransactionReceipt-with-logs.json b/internal/ethapi/testdata/eth_getTransactionReceipt-with-logs.json index 61aed4b7bdb2..1a1edb7887b2 100644 --- a/internal/ethapi/testdata/eth_getTransactionReceipt-with-logs.json +++ b/internal/ethapi/testdata/eth_getTransactionReceipt-with-logs.json @@ -1,5 +1,5 @@ { - "blockHash": "0xc281d4299fc4e8ce5bba7ecb8deb50f5403d604c806b36aa887dfe2ff84c064f", + "blockHash": "0xcc6225bf39327429a3d869af71182d619a354155187d0b5a8ecd6a9309cffcaa", "blockNumber": "0x3", "contractAddress": null, "cumulativeGasUsed": "0x5e28", @@ -18,7 +18,7 @@ "blockNumber": "0x3", "transactionHash": "0xeaf3921cbf03ba45bad4e6ab807b196ce3b2a0b5bacc355b6272fa96b11b4287", "transactionIndex": "0x0", - "blockHash": "0xc281d4299fc4e8ce5bba7ecb8deb50f5403d604c806b36aa887dfe2ff84c064f", + "blockHash": "0xcc6225bf39327429a3d869af71182d619a354155187d0b5a8ecd6a9309cffcaa", "logIndex": "0x0", "removed": false } From 3475f9431fd528f0148a882a8c1959c320c4d30e Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Thu, 31 Oct 2024 21:20:07 +0100 Subject: [PATCH 5/6] eth/tracers/internal/tracetest: fix test --- eth/tracers/internal/tracetest/supply_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eth/tracers/internal/tracetest/supply_test.go b/eth/tracers/internal/tracetest/supply_test.go index 2391add91b95..6f06b7c0d5be 100644 --- a/eth/tracers/internal/tracetest/supply_test.go +++ b/eth/tracers/internal/tracetest/supply_test.go @@ -86,7 +86,7 @@ func TestSupplyOmittedFields(t *testing.T) { expected := supplyInfo{ Number: 0, - Hash: common.HexToHash("0xc02ee8ee5b54a40e43f0fa827d431e1bd4f217e941790dda10b2521d1925a20b"), + Hash: common.HexToHash("0x3055fc27d6b4a08eb07033a0d1ee755a4b2988086f28a6189eac1b507525eeb1"), ParentHash: common.HexToHash("0x0000000000000000000000000000000000000000000000000000000000000000"), } actual := out[expected.Number] From 41cd829d8c883cf06bb86670741037dddcaf8002 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Tue, 26 Nov 2024 16:26:46 +0100 Subject: [PATCH 6/6] core: fix rebase issue --- core/state_processor.go | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/core/state_processor.go b/core/state_processor.go index 8419d50e4cdf..9472ab638b71 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -268,32 +268,18 @@ func ProcessParentBlockHash(prevHash common.Hash, evm *vm.EVM) { // ProcessWithdrawalQueue calls the EIP-7002 withdrawal queue contract. // It returns the opaque request data returned by the contract. -<<<<<<< HEAD -func ProcessWithdrawalQueue(evm *vm.EVM) []byte { - return processRequestsSystemCall(evm, 0x01, params.WithdrawalQueueAddress) -======= -func ProcessWithdrawalQueue(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB) { - processRequestsSystemCall(requests, vmenv, statedb, 0x01, params.WithdrawalQueueAddress) ->>>>>>> 7481705901 (all: simplify requests) +func ProcessWithdrawalQueue(requests *[][]byte, evm *vm.EVM) { + processRequestsSystemCall(requests, evm, 0x01, params.WithdrawalQueueAddress) } // ProcessConsolidationQueue calls the EIP-7251 consolidation queue contract. // It returns the opaque request data returned by the contract. -<<<<<<< HEAD -func ProcessConsolidationQueue(evm *vm.EVM) []byte { - return processRequestsSystemCall(evm, 0x02, params.ConsolidationQueueAddress) +func ProcessConsolidationQueue(requests *[][]byte, evm *vm.EVM) { + processRequestsSystemCall(requests, evm, 0x02, params.ConsolidationQueueAddress) } -func processRequestsSystemCall(evm *vm.EVM, requestType byte, addr common.Address) []byte { +func processRequestsSystemCall(requests *[][]byte, evm *vm.EVM, requestType byte, addr common.Address) { if tracer := evm.Config.Tracer; tracer != nil { -======= -func ProcessConsolidationQueue(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB) { - processRequestsSystemCall(requests, vmenv, statedb, 0x02, params.ConsolidationQueueAddress) -} - -func processRequestsSystemCall(requests *[][]byte, vmenv *vm.EVM, statedb vm.StateDB, requestType byte, addr common.Address) { - if tracer := vmenv.Config.Tracer; tracer != nil { ->>>>>>> 7481705901 (all: simplify requests) if tracer.OnSystemCallStart != nil { tracer.OnSystemCallStart() }