From 0232565abc4eb4e702f28b58bba03f065468907d Mon Sep 17 00:00:00 2001 From: protolambda Date: Fri, 5 Aug 2022 15:32:07 +0200 Subject: [PATCH] eth,miner: return STATUS_INVALID when failing to process forced transactions in request --- eth/catalyst/api.go | 2 +- miner/worker.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eth/catalyst/api.go b/eth/catalyst/api.go index 2a5398266..d3ab36167 100644 --- a/eth/catalyst/api.go +++ b/eth/catalyst/api.go @@ -276,7 +276,7 @@ func (api *ConsensusAPI) ForkchoiceUpdatedV1(update beacon.ForkchoiceStateV1, pa empty, err := api.eth.Miner().GetSealingBlockSync(update.HeadBlockHash, payloadAttributes.Timestamp, payloadAttributes.SuggestedFeeRecipient, payloadAttributes.Random, true, forceTxs) if err != nil { log.Error("Failed to create empty sealing payload", "err", err) - return valid(nil), beacon.InvalidPayloadAttributes.With(err) + return beacon.STATUS_INVALID, beacon.InvalidPayloadAttributes.With(err) } if payloadAttributes.NoTxPool { id := computePayloadId(update.HeadBlockHash, payloadAttributes) diff --git a/miner/worker.go b/miner/worker.go index f3d570679..9eeeb31c4 100644 --- a/miner/worker.go +++ b/miner/worker.go @@ -1093,12 +1093,12 @@ func (w *worker) generateWork(params *generateParams) (*types.Block, error) { work.state.Prepare(tx.Hash(), work.tcount) _, err := w.commitTransaction(work, tx) if err != nil { - return nil, fmt.Errorf("failed to force-include tx: %s type: %d sender: %s nonce: %d", tx.Hash(), tx.Type(), from, tx.Nonce()) + return nil, fmt.Errorf("failed to force-include tx: %s, type: %d, sender: %s nonce: %d, err: %w", tx.Hash(), tx.Type(), from, tx.Nonce(), err) } work.tcount++ } if !params.noTxs { - w.fillTransactions(nil, work) + _ = w.fillTransactions(nil, work) // may error on interrupt, but an empty block is fine. } return w.engine.FinalizeAndAssemble(w.chain, work.header, work.state, work.txs, work.unclelist(), work.receipts) }