public async Task Execute_Block_NonCancellable() { var blockHeader = new BlockHeader { Height = 2, PreviousBlockHash = Hash.Empty, Time = DateTime.UtcNow.ToTimestamp() }; var txs = BuildTransactions(5); var block = await _blockExecutingService.ExecuteBlockAsync(blockHeader, txs); var allTxIds = txs.Select(x => x.GetHash()).ToList(); block.Body.TransactionsCount.ShouldBe(txs.Count); var binaryMerkleTree = new BinaryMerkleTree(); binaryMerkleTree.AddNodes(allTxIds); var merkleTreeRoot = binaryMerkleTree.ComputeRootHash(); block.Header.MerkleTreeRootOfTransactions.ShouldBe(merkleTreeRoot); block.Body.Transactions.ShouldBe(allTxIds); block.Body.TransactionList.ShouldBe(txs); }
public async Task Execute_Block_NonCancellable_Without_SystemTransactionCount() { var chain = await _smartContractExecutionHelper.CreateChainAsync(); var blockHeader = _kernelTestHelper.GenerateBlock(chain.BestChainHeight, chain.BestChainHash).Header; var transactions = GetTransactions(); var blockExecutedSet = await _blockExecutingService.ExecuteBlockAsync(blockHeader, transactions); await CheckBlockExecutedSetAsync(blockExecutedSet, 2); }
public async Task Execute_Block_NonCancellable() { var txs = BuildTransactions(5); var blockHeader = _kernelTestHelper.GenerateBlock(1, Hash.Empty).Header; var block = await _blockExecutingService.ExecuteBlockAsync(blockHeader, txs); var allTxIds = txs.Select(x => x.GetHash()).ToList(); block.Body.TransactionsCount.ShouldBe(txs.Count); var binaryMerkleTree = BinaryMerkleTree.FromLeafNodes(allTxIds); var merkleTreeRoot = binaryMerkleTree.Root; block.Header.MerkleTreeRootOfTransactions.ShouldBe(merkleTreeRoot); block.Body.TransactionIds.ShouldBe(allTxIds); }