public async Task <IActionResult> GetV2( [FromBody] GetErc20TransferHistoryV2Request request, [FromQuery] int?start, [FromQuery] int?count) { var query = new Erc20TransferHistoryQuery { AssetHolder = request.AssetHolder, BlockNumber = request.BlockNumber, ContractAddress = request.ContractAddress, Count = count, Start = start }; var transfers = (await _transferHistoryService.GetAsync(query)) .Select(x => new Erc20TransferHistoryResponse { BlockHash = x.BlockHash, BlockNumber = x.BlockNumber, BlockTimestamp = x.BlockTimestamp, ContractAddress = x.ContractAddress, From = x.From, LogIndex = x.LogIndex, To = x.To, TransactionHash = x.TransactionHash, TransactionIndex = x.TransactionIndex, TransferAmount = x.TransferAmount.ToString(), GasUsed = x.GasUsed, GasPrice = x.GasPrice }) .ToList(); return(new JsonResult(transfers)); }
public async Task <IEnumerable <Erc20TransferHistoryModel> > GetAsync(Erc20TransferHistoryQuery query) { var filterBuilder = Builders <Erc20TransferHistoryEntity> .Filter; var filter = filterBuilder.Empty; if (!string.IsNullOrEmpty(query.TransactionHash)) { filter &= filterBuilder.Eq(x => x.TransactionHash, query.TransactionHash); } if (query.BlockNumber.HasValue) { filter &= filterBuilder.Eq(x => x.BlockNumber, query.BlockNumber.Value); } if (!string.IsNullOrEmpty(query.AssetHolder)) { if (string.IsNullOrEmpty(query.ContractAddress)) { filter &= filterBuilder.Or ( filterBuilder.Eq(x => x.From, query.AssetHolder), filterBuilder.Eq(x => x.To, query.AssetHolder) ); } else { filter &= filterBuilder.Or ( filterBuilder.And( filterBuilder.Eq(x => x.From, query.AssetHolder) , filterBuilder.Eq(x => x.ContractAddress, query.ContractAddress)), filterBuilder.And(filterBuilder.Eq(x => x.To, query.AssetHolder) , filterBuilder.Eq(x => x.ContractAddress, query.ContractAddress)) ); } } var query1 = _historyCollection .Find(filter) .SortByDescending(x => x.BlockNumber) .ThenBy(x => x.TransactionIndex) .ThenBy(x => x.LogIndex) .Skip(query.Start) .Limit(query.Count); var entities = await _historyCollection .Find(filter) .SortByDescending(x => x.BlockNumber) .ThenBy(x => x.TransactionIndex) .ThenBy(x => x.LogIndex) .Skip(query.Start) .Limit(query.Count) .ToListAsync(); return(entities.Select(_mapper.Map <Erc20TransferHistoryModel>)); }
public async Task <IEnumerable <Erc20TransferHistoryModel> > GetAsync(Erc20TransferHistoryQuery addressHistoryQuery) { return(await _transferHistoryRepository.GetAsync(addressHistoryQuery)); }