public void EndBlockTrace() { for (int index = 0; index < _childTracers.Count; index++) { IBlockTracer childTracer = _childTracers[index]; childTracer.EndBlockTrace(); } }
public Block?Trace(Block block, IBlockTracer blockTracer) { try { blockTracer.StartNewBlockTrace(block); /* We force process since we want to process a block that has already been processed in the past and normally it would be ignored. * We also want to make it read only so the state is not modified persistently in any way. */ Block?processedBlock = _blockProcessor.Process(block, ProcessingOptions.ForceProcessing | ProcessingOptions.ReadOnlyChain | ProcessingOptions.NoValidation, blockTracer); blockTracer.EndBlockTrace(); return(processedBlock); } catch (Exception) { _stateProvider.Reset(); throw; } }