Beispiel #1
0
 internal ProposalIdList GetNotVotedProposalIdList(ProposalIdList proposalIdList)
 {
     return(new ProposalIdList
     {
         ProposalIds =
         { proposalIdList.ProposalIds.Where(proposalId => _notApprovedProposalIdList.Contains(proposalId)) }
     });
 }
Beispiel #2
0
        public override Empty ApproveMultiProposals(ProposalIdList input)
        {
            AssertCurrentMiner();
            foreach (var proposalId in input.ProposalIds)
            {
                Approve(proposalId);
                Context.LogDebug(() => $"Proposal {proposalId} approved by {Context.Sender}");
            }

            return(new Empty());
        }
Beispiel #3
0
        public override ProposalIdList GetNotVotedProposals(ProposalIdList input)
        {
            var result = new ProposalIdList();

            foreach (var proposalId in input.ProposalIds)
            {
                var proposal = State.Proposals[proposalId];
                if (proposal == null || !Validate(proposal) || CheckProposalAlreadyVotedBy(proposal, Context.Sender))
                {
                    continue;
                }
                result.ProposalIds.Add(proposalId);
            }

            return(result);
        }
Beispiel #4
0
        public override ProposalIdList GetValidProposals(ProposalIdList input)
        {
            var result = new ProposalIdList();

            foreach (var proposalId in input.ProposalIds)
            {
                var proposal = State.Proposals[proposalId];
                if (proposal == null || !Validate(proposal) || CheckSenderAlreadyApproved(proposal))
                {
                    continue;
                }
                result.ProposalIds.Add(proposalId);
            }

            return(result);
        }
Beispiel #5
0
        public override Empty ApproveMultiProposals(ProposalIdList input)
        {
            AssertCurrentMiner();
            foreach (var proposalId in input.ProposalIds)
            {
                var proposal = State.Proposals[proposalId];
                if (proposal == null || !CheckProposalNotExpired(proposal))
                {
                    continue;
                }
                Approve(proposalId);
                Context.LogDebug(() => $"Proposal {proposalId} approved by {Context.Sender}");
            }

            return(new Empty());
        }
Beispiel #6
0
        public override ProposalIdList GetNotVotedPendingProposals(ProposalIdList input)
        {
            var result            = new ProposalIdList();
            var currentParliament = GetCurrentMinerList();

            foreach (var proposalId in input.ProposalIds)
            {
                var proposal = State.Proposals[proposalId];
                if (proposal == null || !Validate(proposal) || CheckProposalAlreadyVotedBy(proposal, Context.Sender))
                {
                    continue;
                }
                var organization = State.Organisations[proposal.OrganizationAddress];
                if (organization == null || !IsProposalStillPending(proposal, organization, currentParliament))
                {
                    continue;
                }
                result.ProposalIds.Add(proposalId);
            }

            return(result);
        }
Beispiel #7
0
        public override ProposalIdList GetNotApprovedProposals(ProposalIdList input)
        {
            var result            = new ProposalIdList();
            var currentParliament = GetCurrentMinerList();

            foreach (var proposalId in input.ProposalIds)
            {
                var proposal = State.Proposals[proposalId];
                if (proposal == null || !Validate(proposal) || CheckSenderAlreadyApproved(proposal))
                {
                    continue;
                }
                var organization = State.Organisations[proposal.OrganizationAddress];
                if (organization == null || IsReleaseThresholdReached(proposal, organization, currentParliament))
                {
                    continue;
                }
                result.ProposalIds.Add(proposalId);
            }

            return(result);
        }