Exemple #1
0
        private async Task <TransactionList> AEDPoSContract_GenerateConsensusTransactions_FirstRound_ExtraBlockMiner_Test()
        {
            var usingKeyPair = BootMinerKeyPair;

            KeyPairProvider.SetKeyPair(usingKeyPair);

            var consensusCommand = await AEDPoSContract_GetConsensusCommand_FirstRound_ExtraBlockMiner_Test();

            BlockTimeProvider.SetBlockTime(BlockchainStartTimestamp + new Duration
            {
                Seconds = AEDPoSContractTestConstants.MiningInterval.Mul(AEDPoSContractTestConstants.InitialMinersCount)
                          .Div(1000)
            });

            var triggerForCommand =
                await TriggerInformationProvider
                .GetTriggerInformationForConsensusTransactionsAsync(consensusCommand.ToBytesValue());

            var transactionList = await AEDPoSContractStub.GenerateConsensusTransactions.CallAsync(triggerForCommand);

            transactionList.Transactions.Count.ShouldBe(1);
            transactionList.Transactions[0].MethodName.ShouldBe(nameof(AEDPoSContractStub.NextRound));

            return(transactionList);
        }
Exemple #2
0
        public async Task AEDPoSContract_GenerateConsensusTransaction_NextTerm_Test()
        {
            var usingKeyPair = BootMinerKeyPair;

            KeyPairProvider.SetKeyPair(usingKeyPair);

            //Next term
            {
                var consensusCommand = await AEDPoSContract_GetConsensusCommand_FirstRound_ExtraBlockMiner_Test();

                var nextTermBehavior = new AElfConsensusHint {
                    Behaviour = AElfConsensusBehaviour.NextTerm
                }
                .ToByteString();
                consensusCommand.Hint = nextTermBehavior;
                BlockTimeProvider.SetBlockTime(BlockchainStartTimestamp + new Duration
                {
                    Seconds = AEDPoSContractTestConstants.MiningInterval
                              .Mul(AEDPoSContractTestConstants.InitialMinersCount)
                              .Div(1000)
                });

                var triggerForCommand =
                    await TriggerInformationProvider
                    .GetTriggerInformationForConsensusTransactionsAsync(consensusCommand.ToBytesValue());

                var transactionList =
                    await AEDPoSContractStub.GenerateConsensusTransactions.CallAsync(triggerForCommand);

                transactionList.Transactions.Count.ShouldBe(1);
                transactionList.Transactions[0].MethodName.ShouldBe(nameof(AEDPoSContractStub.NextTerm));
            }
        }
        internal async Task <TransactionList> AEDPoSContract_GenerateConsensusTransactions_FirstRound_BootMiner()
        {
            var consensusCommand = await AEDPoSContract_GetConsensusCommand_FirstRound_BootMiner_Test();

            BlockTimeProvider.SetBlockTime(BlockchainStartTimestamp + new Duration
            {
                Seconds = AEDPoSContractTestConstants.MiningInterval.Div(1000)
            });

            var triggerForCommand =
                await TriggerInformationProvider
                .GetTriggerInformationForConsensusTransactionsAsync(consensusCommand.ToBytesValue());

            var transactionList = await AEDPoSContractStub.GenerateConsensusTransactions.CallAsync(triggerForCommand);

            transactionList.Transactions.Count.ShouldBe(1);
            transactionList.Transactions[0].MethodName.ShouldBe(nameof(AEDPoSContractStub.UpdateValue));

            return(transactionList);
        }