From c49aae987040b3c0b846c5acb006fdba1eae282b Mon Sep 17 00:00:00 2001
From: Mr-Leshiy <alex_pozhilenkov@adoriasoft.com>
Date: Fri, 11 Dec 2020 16:49:44 +0200
Subject: [PATCH] consensus: refactor FinalizeAndAssemble to use Finalize
 (#21993)

---
 consensus/clique/clique.go    | 5 ++---
 consensus/ethash/consensus.go | 5 ++---
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/consensus/clique/clique.go b/consensus/clique/clique.go
index c05f84cc2..6c667804d 100644
--- a/consensus/clique/clique.go
+++ b/consensus/clique/clique.go
@@ -561,9 +561,8 @@ func (c *Clique) Finalize(chain consensus.ChainHeaderReader, header *types.Heade
 // FinalizeAndAssemble implements consensus.Engine, ensuring no uncles are set,
 // nor block rewards given, and returns the final block.
 func (c *Clique) FinalizeAndAssemble(chain consensus.ChainHeaderReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
-	// No block rewards in PoA, so the state remains as is and uncles are dropped
-	header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))
-	header.UncleHash = types.CalcUncleHash(nil)
+	// Finalize block
+	c.Finalize(chain, header, state, txs, uncles)
 
 	// Assemble and return the final block for sealing
 	return types.NewBlock(header, txs, nil, receipts, new(trie.Trie)), nil
diff --git a/consensus/ethash/consensus.go b/consensus/ethash/consensus.go
index 8e401af7c..ae0905ee3 100644
--- a/consensus/ethash/consensus.go
+++ b/consensus/ethash/consensus.go
@@ -584,9 +584,8 @@ func (ethash *Ethash) Finalize(chain consensus.ChainHeaderReader, header *types.
 // FinalizeAndAssemble implements consensus.Engine, accumulating the block and
 // uncle rewards, setting the final state and assembling the block.
 func (ethash *Ethash) FinalizeAndAssemble(chain consensus.ChainHeaderReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
-	// Accumulate any block and uncle rewards and commit the final state root
-	accumulateRewards(chain.Config(), state, header, uncles)
-	header.Root = state.IntermediateRoot(chain.Config().IsEIP158(header.Number))
+	// Finalize block
+	ethash.Finalize(chain, header, state, txs, uncles)
 
 	// Header seems complete, assemble into a block and return
 	return types.NewBlock(header, txs, uncles, receipts, new(trie.Trie)), nil
-- 
GitLab