public override Empty UpdateMultipleCandidateInformation(UpdateMultipleCandidateInformationInput input)
        {
            foreach (var updateCandidateInformationInput in input.Value)
            {
                UpdateCandidateInformation(updateCandidateInformationInput);
            }

            return(new Empty());
        }
Beispiel #2
0
        public override Empty UpdateMultipleCandidateInformation(UpdateMultipleCandidateInformationInput input)
        {
            Assert(
                Context.GetContractAddressByName(SmartContractConstants.ConsensusContractSystemName) == Context.Sender,
                "Only consensus contract can update candidate information.");

            foreach (var updateCandidateInformationInput in input.Value)
            {
                UpdateCandidateInformation(updateCandidateInformationInput);
            }

            return(new Empty());
        }
Beispiel #3
0
        public async Task Election_UpdateMultipleCandidateInformation_Without_Authority_Test()
        {
            var pubkey     = ValidationDataCenterKeyPairs.First().PublicKey.ToHex();
            var updateInfo = new UpdateMultipleCandidateInformationInput
            {
                Value =
                {
                    new UpdateCandidateInformationInput
                    {
                        IsEvilNode              = true,
                        Pubkey                  = pubkey,
                        RecentlyProducedBlocks  = 10,
                        RecentlyMissedTimeSlots = 100
                    }
                }
            };

            var transactionResult = (await ElectionContractStub.UpdateMultipleCandidateInformation.SendAsync(updateInfo)
                                     ).TransactionResult;

            transactionResult.Status.ShouldBe(TransactionResultStatus.Failed);
            transactionResult.Error.ShouldContain("Only consensus contract can update candidate information");
        }