public async Task <BtgTransaction> GetTransaction(string txHash)
        {
            var tx = await GetTx((txHash));

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

            var btgTx = new BtgTransaction
            {
                Hash      = txHash,
                Timestamp = ((uint)tx.BlockTime).FromUnixDateTime()
            };

            btgTx.Inputs = tx.Inputs.Select(o => new BtgInput()
            {
                Address = o.Address,
                Value   = new Money(o.AmountSatoshi)
            }).ToList();

            btgTx.Outputs = tx.Outputs.Select(o => new BtgOutput()
            {
                Address = o.ScriptPubKey.Addresses.FirstOrDefault(),
                Value   = new Money(o.ValueBtc, MoneyUnit.BTC)
            }).ToList();
            return(btgTx);
        }
        private HistoricalTransactionDto MapToHistoricalTransaction(BtgTransaction tx, string requestedAddress)
        {
            var isSending = tx.Inputs.Where(p => p.Address == requestedAddress).Sum(p => p.Value) >=
                            tx.Outputs.Where(p => p.Address == requestedAddress).Sum(p => p.Value);
            string from;
            string to;
            long   amount;

            if (isSending)
            {
                from   = requestedAddress;
                to     = tx.Outputs.Select(o => o.Address).FirstOrDefault(o => o != null && o != requestedAddress) ?? requestedAddress;
                amount = tx.Outputs.Where(o => o.Address != requestedAddress).Sum(o => o.Value);
            }
            else
            {
                to     = requestedAddress;
                from   = tx.Inputs.Select(o => o.Address).FirstOrDefault(o => o != null && o != requestedAddress) ?? requestedAddress;
                amount = tx.Outputs.Where(o => o.Address == requestedAddress).Sum(o => o.Value);
            }

            return(new HistoricalTransactionDto
            {
                TxHash = tx.Hash,
                IsSending = isSending,
                AmountSatoshi = amount,
                FromAddress = from,
                AssetId = Constants.Assets.BitcoinGold.AssetId,
                ToAddress = to,
                TimeStamp = tx.Timestamp
            });
        }