private GetMedianPrevHeaderTime ( BitSharp.Core.Domain.Chain chain, int height ) : DateTimeOffset | ||
chain | BitSharp.Core.Domain.Chain | |
height | int | |
return | DateTimeOffset |
private DateTimeOffset GetMedianPrevHeaderTime(Chain chain, int height)
{
if (height == 0)
return DateTimeOffset.FromUnixTimeSeconds(0);
var medianTimeSpan = Math.Min(11, height);
var prevHeaderTimes = chain.Blocks.GetRange(height - medianTimeSpan, medianTimeSpan)
//TODO pull tester doesn't fail if the sort step is missed
.OrderBy(x => x.Time).ToList();
return prevHeaderTimes[prevHeaderTimes.Count / 2].Time;
}