public Task <GetTransactionDetailsResponse> GetAsync(
     GetTransactionDetailsRequest request,
     CancellationToken cancellationToken = default)
 {
     return(_get.PostAsync(request, cancellationToken));
 }
 public GetTransactionDetailsResponse GetTransactionDetailsRequest(GetTransactionDetailsRequest GetTransactionDetailsRequest)
 {
     object[] results = this.Invoke("GetTransactionDetailsRequest", new object[] {
         GetTransactionDetailsRequest});
     return ((GetTransactionDetailsResponse)(results[0]));
 }
        public override async Task <GetTransactionDetailsResponse> GetTransactionDetails(GetTransactionDetailsRequest request, ServerCallContext context)
        {
            var transactionOutputs = await _databaseProxy.GetTransactionOutput(context.CancellationToken, request.TransactionHashId).ConfigureAwait(false);

            if (transactionOutputs.Any() == false)
            {
                return(new GetTransactionDetailsResponse());
            }

            var transactionDetails = transactionOutputs.First();

            var transaction = transactionOutputs.GroupBy(transaction => transaction.TransactionId)
                              .Select(groupTransactions =>
            {
                var transactionDetails = groupTransactions.First();

                return(new Transaction
                {
                    TransactionId = transactionDetails.TransactionId,
                    TransactionHash = transactionDetails.TransactionHash,
                    TransactionCount = transactionDetails.TransactionCount,
                    TransactionSize = transactionDetails.TransactionSize,
                    BlockNumber = transactionDetails.BlockNumber,
                    BlockSize = transactionDetails.BlockSize,
                    EpochNumber = transactionDetails.EpochNumber,
                    EpochSlotNumber = transactionDetails.EpochSlotNumber,
                    SlotNumber = transactionDetails.SlotNumber,
                    Deposit = transactionDetails.Deposit,
                    Fees = transactionDetails.Fees,
                    InvalidAfterBlock = transactionDetails.InvalidAfterBlock,
                    InvalidBeforeBlock = transactionDetails.InvalidBeforeBlock,
                    OutSum = transactionDetails.TransactionOutputTotal,
                    Timestamp = transactionDetails.BlockTimestamp.ToTimestamp(),
                    TransactionInId = transactionDetails.TransactionInId
                });
            })
                              .Single();

            foreach (var metadataDetail in transactionOutputs.Where(m => m.MetadataKey > 0))
            {
                transaction.Metadata.Add(new TransactionMetadata {
                    Key = metadataDetail.MetadataKey, Json = metadataDetail.MetadataJson
                });
            }

            foreach (var outputDetail in transactionOutputs.Where(o => o.AddressTo != null))
            {
                transaction.Output.Add(new TransactionOutput {
                    Address = outputDetail.AddressTo, Amount = outputDetail.Amount
                });
            }

            return(new GetTransactionDetailsResponse {
                Transaction = transaction
            });
        }
 public System.IAsyncResult BeginGetTransactionDetailsRequest(GetTransactionDetailsRequest GetTransactionDetailsRequest, System.AsyncCallback callback, object asyncState)
 {
     return this.BeginInvoke("GetTransactionDetailsRequest", new object[] {
         GetTransactionDetailsRequest}, callback, asyncState);
 }