Ejemplo n.º 1
0
        public async Task <IActionResult> Get(string transactionHash)
        {
            using (var transactionService = new TransactionService(_nodeUrls))
            {
                Caladan.Models.Transaction transaction = null;
                try
                {
                    transaction = await transactionService.GetTransactionAsync(transactionHash);
                }
                catch (Exception ex)
                {
                    return(StatusCode(500, ex.Message));
                }

                if (transaction == null)
                {
                    return(NotFound($"Transaction {transactionHash} could not be found."));
                }

                var apiTransaction = new Models.Api.Transaction()
                {
                    BlockHash        = transaction.BlockHash,
                    BlockNumber      = (ulong)transaction.BlockNumber,
                    From             = transaction.From,
                    Gas              = (ulong)transaction.Gas,
                    GasPrice         = (ulong)transaction.GasPrice,
                    Input            = transaction.Input,
                    Nonce            = (ulong)transaction.Nonce,
                    To               = transaction.To,
                    TransactionHash  = transaction.TransactionHash,
                    TransactionIndex = (ulong)transaction.TransactionIndex,
                    Value            = transaction.Value.FromHexWei(transaction.Decimals),
                    Symbol           = string.IsNullOrEmpty(transaction.Symbol) ? _configuration["AppSettings:MainCurrencySymbol"] : transaction.Symbol,
                    Timestamp        = transaction.Timestamp
                };

                return(Ok(apiTransaction));
            }
        }
Ejemplo n.º 2
0
        private static async Task GetTransactionReceipt(string transactionHash, TransactionService transactionService, MongoRepository <Caladan.Models.Transaction> transactionRepository,
                                                        MongoRepository <Caladan.Models.TransactionReceipt> transactionReceiptRepository, Caladan.Models.Transaction transaction)
        {
            if (transaction.BlockNumber > 0)
            {
                var transactionReceiptBuilder = Builders <Caladan.Models.TransactionReceipt> .Filter;
                var transactionReceiptFilter  = transactionReceiptBuilder.Where(x => x.TransactionHash == transactionHash.ToLower());
                var transactionReceipts       = await transactionReceiptRepository.FindAsync(transactionReceiptFilter, null);

                var transactionReceipt = transactionReceipts.FirstOrDefault();

                if (transactionReceipt == null)
                {
                    transactionReceipt = await transactionService.GetTransactionReceiptAsync(transactionHash.ToLower());
                }

                transaction.Receipt = transactionReceipt;
            }
        }