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; }
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); }
public void SetTermSnapshot(TermSnapshot snapshot) { State.SnapshotMap[snapshot.TermNumber.ToInt64Value()] = snapshot; }
private bool TryToGetSnapshot(long termNumber, out TermSnapshot snapshot) { snapshot = State.SnapshotMap[termNumber.ToInt64Value()]; return(snapshot != null); }