diff --git a/ethcore/src/engines/mod.rs b/ethcore/src/engines/mod.rs index c978cd5e3..aef83c3bd 100644 --- a/ethcore/src/engines/mod.rs +++ b/ethcore/src/engines/mod.rs @@ -394,7 +394,7 @@ pub trait Engine : Sync + Send { /// Common engine utilities pub mod common { use std::sync::Arc; - use block::{ExecutedBlock, IsBlock}; + use block::ExecutedBlock; use error::Error; use transaction::SYSTEM_ADDRESS; use executive::Executive; @@ -473,20 +473,19 @@ pub mod common { /// Trace rewards on closing block pub fn bestow_block_reward(block: &mut ExecutedBlock, engine: &E) -> Result<(), Error> { - let tracing_enabled = block.tracing_enabled(); - let fields = block.fields_mut(); - let mut tracer = ExecutiveTracer::default(); + let fields = block.fields_mut(); // Bestow block reward let reward = engine.params().block_reward; let res = fields.state.add_balance(fields.header.author(), &reward, CleanupMode::NoEmpty) .map_err(::error::Error::from) .and_then(|_| fields.state.commit()); - if tracing_enabled { - let block_author = fields.header.author().clone(); - tracer.trace_reward(block_author, engine.params().block_reward, RewardType::Block); - fields.traces.as_mut().map(|mut traces| traces.push(tracer.traces())); - } + let block_author = fields.header.author().clone(); + fields.traces.as_mut().map(|mut traces| { + let mut tracer = ExecutiveTracer::default(); + tracer.trace_reward(block_author, engine.params().block_reward, RewardType::Block); + traces.push(tracer.traces()) + }); // Commit state so that we can actually figure out the state root. if let Err(ref e) = res { diff --git a/ethcore/src/engines/null_engine.rs b/ethcore/src/engines/null_engine.rs index 378637a5e..1deaabca0 100644 --- a/ethcore/src/engines/null_engine.rs +++ b/ethcore/src/engines/null_engine.rs @@ -102,7 +102,9 @@ impl Engine for NullEngine { &(result_uncle_reward), CleanupMode::NoEmpty )?; - tracer.trace_reward(uncle_author, result_uncle_reward, RewardType::Uncle); + if tracing_enabled { + tracer.trace_reward(uncle_author, result_uncle_reward, RewardType::Uncle); + } } fields.state.commit()?;