public async Task WrongParallelTest() { var chain = await _blockchainService.GetChainAsync(); await _blockchainService.SetIrreversibleBlockAsync(chain, chain.BestChainHeight, chain.BestChainHash); var transactions = _parallelTestHelper.GenerateBasicFunctionWithParallelTransactions(_groupCount, _transactionCount); await _parallelTestHelper.BroadcastTransactions(transactions); var poolSize = await _txHub.GetTransactionPoolSizeAsync(); poolSize.ShouldBe(transactions.Count); var groupedTransactions = await _grouper.GroupAsync( new ChainContext { BlockHash = chain.BestChainHash, BlockHeight = chain.BestChainHeight }, transactions); groupedTransactions.Parallelizables.Count.ShouldBe(_transactionCount); groupedTransactions.NonParallelizables.Count.ShouldBe(0); var block = await _minerService.MineAsync(chain.BestChainHash, chain.BestChainHeight, TimestampHelper.GetUtcNow(), TimestampHelper.DurationFromSeconds(4)); block.TransactionIds.Count().ShouldBe(_groupCount); await _blockchainService.AddBlockAsync(block); await _blockAttachService.AttachBlockAsync(block); var codeRemarks = await _codeRemarksManager.GetCodeRemarksAsync( Hash.FromRawBytes(_parallelTestHelper.BasicFunctionWithParallelContractCode)); codeRemarks.ShouldNotBeNull(); codeRemarks.NonParallelizable.ShouldBeTrue(); groupedTransactions = await _grouper.GroupAsync(new ChainContext { BlockHash = block.GetHash(), BlockHeight = block.Height }, transactions); groupedTransactions.Parallelizables.Count.ShouldBe(0); groupedTransactions.NonParallelizables.Count.ShouldBe(_transactionCount); poolSize = await _txHub.GetTransactionPoolSizeAsync(); poolSize.ShouldBe(transactions.Count - block.TransactionIds.Count()); block = await _minerService.MineAsync(block.GetHash(), block.Height, TimestampHelper.GetUtcNow(), TimestampHelper.DurationFromSeconds(4)); block.TransactionIds.Count().ShouldBe(poolSize); }
/// <summary> /// Get the transaction pool status. /// </summary> /// <returns></returns> public async Task <GetTransactionPoolStatusOutput> GetTransactionPoolStatusAsync() { var queued = await _txHub.GetTransactionPoolSizeAsync(); return(new GetTransactionPoolStatusOutput { Queued = queued }); }