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); }
/// <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)); }