|
|
@@ -561,8 +561,16 @@ func (ethash *Ethash) Prepare(chain consensus.ChainReader, header *types.Header)
|
|
|
}
|
|
|
|
|
|
// Finalize implements consensus.Engine, accumulating the block and uncle rewards,
|
|
|
-// setting the final state and assembling the block.
|
|
|
-func (ethash *Ethash) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header, receipts []*types.Receipt) (*types.Block, error) {
|
|
|
+// setting the final state on the header
|
|
|
+func (ethash *Ethash) Finalize(chain consensus.ChainReader, header *types.Header, state *state.StateDB, txs []*types.Transaction, uncles []*types.Header) {
|
|
|
+ // 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))
|
|
|
+}
|
|
|
+
|
|
|
+// FinalizeAndAssemble implements consensus.Engine, accumulating the block and
|
|
|
+// uncle rewards, setting the final state and assembling the block.
|
|
|
+func (ethash *Ethash) FinalizeAndAssemble(chain consensus.ChainReader, 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))
|