Ejemplo n.º 1
0
        public QueryTransaction GetTransaction(string transactionId)
        {
            Storage.Types.SyncTransactionInfo  transaction      = BlockTransactionGet(transactionId);
            Storage.Types.SyncTransactionItems transactionItems = TransactionItemsGet(transactionId);

            if (transactionItems == null)
            {
                return(null);
            }

            var result = new QueryTransaction
            {
                Symbol           = chainConfiguration.Symbol,
                BlockHash        = transaction?.BlockHash ?? null,
                BlockIndex       = transaction?.BlockIndex ?? null,
                Confirmations    = transaction?.Confirmations ?? 0,
                Timestamp        = transaction?.Timestamp ?? 0,
                TransactionId    = transaction?.TransactionHash ?? transactionId,
                TransactionIndex = transaction?.TransactionIndex,
                RBF         = transactionItems.RBF,
                LockTime    = transactionItems.LockTime.ToString(),
                Version     = transactionItems.Version,
                IsCoinbase  = transactionItems.IsCoinbase,
                IsCoinstake = transactionItems.IsCoinstake,
                Fee         = transactionItems.Fee,
                Weight      = transactionItems.Weight,
                Size        = transactionItems.Size,
                VirtualSize = transactionItems.VirtualSize,
                HasWitness  = transactionItems.HasWitness,
                Inputs      = transactionItems.Inputs.Select(i => new QueryTransactionInput
                {
                    CoinBase           = i.InputCoinBase,
                    InputAddress       = i.InputAddress,
                    InputAmount        = i.InputAmount,
                    InputIndex         = i.PreviousIndex,
                    InputTransactionId = i.PreviousTransactionHash,
                    ScriptSig          = i.ScriptSig,
                    ScriptSigAsm       = new Script(NBitcoin.DataEncoders.Encoders.Hex.DecodeData(i.ScriptSig)).ToString(),
                    WitScript          = i.WitScript,
                    SequenceLock       = i.SequenceLock
                }),
                Outputs = transactionItems.Outputs.Select(o => new QueryTransactionOutput
                {
                    Address            = o.Address,
                    Balance            = o.Value,
                    Index              = o.Index,
                    OutputType         = o.OutputType,
                    ScriptPubKey       = o.ScriptPubKey,
                    SpentInTransaction = o.SpentInTransaction,
                    ScriptPubKeyAsm    = new Script(NBitcoin.DataEncoders.Encoders.Hex.DecodeData(o.ScriptPubKey)).ToString()
                }),
            };

            return(result);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Search for a customer’s transaction by a date range and then drill down using further filters.
 /// </summary>
 /// <param name="requestModel"></param>
 /// <returns></returns>
 public HttpResponse <GetTransactionList> QueryTransaction(QueryTransaction requestModel)
 {
     return(new ApiHttpClient().PostRequest <GetTransactionList>(ApiUrls.Reporting, AppSettings.SecretKey, requestModel));
 }