Esempio n. 1
0
        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");
        }
Esempio n. 2
0
        // 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);
        }