public override Empty UpdateMultipleCandidateInformation(UpdateMultipleCandidateInformationInput input) { foreach (var updateCandidateInformationInput in input.Value) { UpdateCandidateInformation(updateCandidateInformationInput); } return(new Empty()); }
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()); }
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"); }