public async Task AddOrUpdateReceipts_Test() { var transactionReceipts = GenerateTransactionReceipts(3); await _transactionReceiptManager.AddOrUpdateReceiptsAsync(transactionReceipts); var result = await _transactionReceiptManager.GetReceiptAsync(transactionReceipts[0].TransactionId); result.ShouldBe(transactionReceipts[0]); //update foreach (var transactionReceipt in transactionReceipts) { transactionReceipt.Transaction.MethodName = "UpdateMethod"; } await _transactionReceiptManager.AddOrUpdateReceiptsAsync(transactionReceipts); var result1 = await _transactionReceiptManager.GetReceiptAsync(transactionReceipts[0].TransactionId); result1.Transaction.MethodName.ShouldBe("UpdateMethod"); }
// Change transaction status and add transaction into TransactionManager. private void UpdateExecutedTransactions(IEnumerable <Hash> txIds, ulong blockNumber) { var receipts = new List <TransactionReceipt>(); foreach (var txId in txIds) { if (_allTxns.TryGetValue(txId, out var tr)) { tr.Status = TransactionReceipt.Types.TransactionStatus.TransactionExecuted; tr.ExecutedBlockNumber = blockNumber; _transactionManager.AddTransactionAsync(tr.Transaction); receipts.Add(tr); } else { //TODO: Handle this, but it should never happen } } _receiptManager.AddOrUpdateReceiptsAsync(receipts); }