예제 #1
0
            public void Deconstruct(out long libHeight)
            {
                if (_currentRound.IsEmpty || _previousRound.IsEmpty)
                {
                    libHeight = 0;
                }

                var minedMiners = _currentRound.GetMinedMiners().Select(m => m.Pubkey).ToList();
                var impliedIrreversibleHeights = _previousRound.GetSortedImpliedIrreversibleBlockHeights(minedMiners);

                if (impliedIrreversibleHeights.Count < _currentRound.MinersCountOfConsent)
                {
                    libHeight = 0;
                    return;
                }

                libHeight = impliedIrreversibleHeights[impliedIrreversibleHeights.Count.Sub(1).Div(3)];
            }