public async Task <IActionResult> GetTransaction([FromBody] AddressTransactions addressTransactions) { if (!ModelState.IsValid) { throw new ClientSideException(ExceptionType.WrongParams, JsonConvert.SerializeObject(ModelState.Errors())); } Lykke.Service.EthereumCore.BusinessModels.AddressTransaction request = new Lykke.Service.EthereumCore.BusinessModels.AddressTransaction() { Address = addressTransactions.Address, Count = addressTransactions.Count, Start = addressTransactions.Start, }; IEnumerable <TransactionContentModel> transactions = await _ethereumIndexerService.GetTransactionHistory(request); IEnumerable <Models.Indexer.TransactionResponse> result = transactions.Select(transactionContent => { return(MapTransactionModelContentToResponse(transactionContent)); }); return(Ok(new FilteredTransactionsResponse() { Transactions = result })); }
public async Task <IActionResult> GetAddressHistory([FromBody] AddressTransactions addressTransactions) { if (!ModelState.IsValid) { throw new ClientSideException(ExceptionType.WrongParams, JsonConvert.SerializeObject(ModelState.Errors())); } Lykke.Service.EthereumCore.BusinessModels.AddressTransaction request = new Lykke.Service.EthereumCore.BusinessModels.AddressTransaction() { Address = addressTransactions.Address, Count = addressTransactions.Count, Start = addressTransactions.Start, }; IEnumerable <AddressHistoryModel> history = await _ethereumIndexerService.GetAddressHistory(request); IEnumerable <AddressHistoryResponse> result = history.Select(item => { return(new AddressHistoryResponse() { BlockNumber = item.BlockNumber, BlockTimestamp = item.BlockTimestamp, BlockTimeUtc = item.BlockTimeUtc, From = item.From, HasError = item.HasError, MessageIndex = item.MessageIndex, To = item.To, TransactionHash = item.TransactionHash, TransactionIndexInBlock = item.TransactionIndexInBlock, Value = item.Value, GasPrice = item.GasPrice, GasUsed = item.GasUsed, }); }); return(Ok(new FilteredAddressHistoryResponse() { History = result })); }
public async Task <IActionResult> GetInternalMessages([FromBody] AddressTransactions addressTransactions) { if (!ModelState.IsValid) { throw new ClientSideException(ExceptionType.WrongParams, JsonConvert.SerializeObject(ModelState.Errors())); } Lykke.Service.EthereumCore.BusinessModels.AddressTransaction request = new Lykke.Service.EthereumCore.BusinessModels.AddressTransaction() { Address = addressTransactions.Address, Count = addressTransactions.Count, Start = addressTransactions.Start, }; IEnumerable <InternalMessageModel> messages = await _ethereumIndexerService.GetInternalMessagesHistory(request); IEnumerable <Models.Indexer.InternalMessageResponse> result = messages.Select(message => MapInternalMessageModelToResponse(message)); return(Ok(new FilteredInternalMessagessResponse() { Messages = result })); }
public AddressTransactions GetTransactionsForAddress(string address) { List <Transaction> transactionsForAddressFromBlocks = this.dataService.Blocks .SelectMany(b => b.Transactions) .Where(t => t.From == address || t.To == address) .ToList(); List <Transaction> transactionsForAddressFromPendingTransactions = this.dataService.PendingTransactions .Where(t => t.From == address || t.To == address) .ToList(); List <Transaction> transactionsForAddress = transactionsForAddressFromBlocks .Concat(transactionsForAddressFromPendingTransactions) .OrderByDescending(t => t.DateCreated) .ToList(); var addressTransactions = new AddressTransactions() { Address = address, Transactions = transactionsForAddress }; return(addressTransactions); }
public IActionResult GetTransactionsForAddress(string address) { AddressTransactions addressTransactions = this.addressService.GetTransactionsForAddress(address); return(Ok(addressTransactions)); }