public async Task Set_ConfigStrategy() { var startTime = DateTime.UtcNow.ToTimestamp(); var testers = new ConsensusTesters(); testers.InitialTesters(startTime); var input = new DPoSStrategyInput { IsBlockchainAgeSettable = true, IsTimeSlotSkippable = true, IsVerbose = true }; var transactionResult = await testers.Testers[0].ExecuteConsensusContractMethodWithMiningAsync( nameof(ConsensusContract.ConfigStrategy), input); transactionResult.Status.ShouldBe(TransactionResultStatus.Mined); //set again transactionResult = await testers.Testers[0].ExecuteConsensusContractMethodWithMiningAsync( nameof(ConsensusContract.ConfigStrategy), input); transactionResult.Status.ShouldBe(TransactionResultStatus.Failed); transactionResult.Error.Contains("Already configured").ShouldBeTrue(); }
public override Empty ConfigStrategy(DPoSStrategyInput input) { Assert(!State.IsStrategyConfigured.Value, ContractErrorCode.GetErrorMessage(ContractErrorCode.InvalidOperation, "Already configured.")); State.IsVerbose.Value = input.IsVerbose; State.IsStrategyConfigured.Value = true; LogVerbose("Consensus log level: Verbose"); return(new Empty()); }
public override Empty ConfigStrategy(DPoSStrategyInput input) { Assert(!State.IsStrategyConfigured.Value, ContractErrorCode.GetErrorMessage(ContractErrorCode.InvalidOperation, "Already configured.")); State.IsBlockchainAgeSettable.Value = input.IsBlockchainAgeSettable; State.IsTimeSlotSkippable.Value = input.IsTimeSlotSkippable; State.IsVerbose.Value = input.IsVerbose; State.IsStrategyConfigured.Value = true; LogVerbose("Consensus log level: Verbose"); LogVerbose($"Is blockchain age settable: {input.IsBlockchainAgeSettable}"); LogVerbose($"Is time slot skippable: {input.IsTimeSlotSkippable}"); return(new Empty()); }