コード例 #1
0
        private void SavePreviousTermInformation(TakeElectionSnapshotInput input)
        {
            var snapshot = new TermSnapshot
            {
                MinedBlocks    = input.MinedBlocks,
                EndRoundNumber = input.RoundNumber
            };

            if (State.Candidates.Value == null)
            {
                return;
            }

            foreach (var pubkey in State.Candidates.Value.Value)
            {
                var votes = State.CandidateVotes[pubkey.ToHex()];
                var validObtainedVotesAmount = 0L;
                if (votes != null)
                {
                    validObtainedVotesAmount = votes.ObtainedActiveVotedVotesAmount;
                }

                snapshot.ElectionResult.Add(pubkey.ToHex(), validObtainedVotesAmount);
            }

            State.Snapshots[input.TermNumber] = snapshot;
        }
コード例 #2
0
ファイル: Helpers.cs プロジェクト: xiaoxiongnpu/AElf
        private bool SetSnapshot(TermSnapshot snapshot)
        {
            var s = State.SnapshotMap[snapshot.TermNumber.ToInt64Value()];

            if (s != null)
            {
                return(false);
            }

            State.SnapshotMap[snapshot.TermNumber.ToInt64Value()] = snapshot;
            return(true);
        }
コード例 #3
0
ファイル: Helpers.cs プロジェクト: xiaoxiongnpu/AElf
 public void SetTermSnapshot(TermSnapshot snapshot)
 {
     State.SnapshotMap[snapshot.TermNumber.ToInt64Value()] = snapshot;
 }
コード例 #4
0
ファイル: Helpers.cs プロジェクト: xiaoxiongnpu/AElf
 private bool TryToGetSnapshot(long termNumber, out TermSnapshot snapshot)
 {
     snapshot = State.SnapshotMap[termNumber.ToInt64Value()];
     return(snapshot != null);
 }