Skip to content

Commit

Permalink
miner: fix receipt deep copy in worker (ethereum#23835)
Browse files Browse the repository at this point in the history
  • Loading branch information
PlasmaPower committed Nov 1, 2021
1 parent 57c252e commit c113520
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions miner/worker.go
Original file line number Diff line number Diff line change
Expand Up @@ -632,17 +632,23 @@ func (w *worker) resultLoop() {
receipts = make([]*types.Receipt, len(task.receipts))
logs []*types.Log
)
for i, receipt := range task.receipts {
for i, taskReceipt := range task.receipts {
receipt := new(types.Receipt)
receipts[i] = receipt
*receipt = *taskReceipt

// add block location fields
receipt.BlockHash = hash
receipt.BlockNumber = block.Number()
receipt.TransactionIndex = uint(i)

receipts[i] = new(types.Receipt)
*receipts[i] = *receipt
// Update the block hash in all logs since it is now available and not when the
// receipt/log of individual transactions were created.
for _, log := range receipt.Logs {
receipt.Logs = make([]*types.Log, len(taskReceipt.Logs))
for i, taskLog := range taskReceipt.Logs {
log := new(types.Log)
receipt.Logs[i] = log
*log = *taskLog
log.BlockHash = hash
}
logs = append(logs, receipt.Logs...)
Expand Down

0 comments on commit c113520

Please sign in to comment.