Esempio n. 1
0
        public QueryAddress GetAddressTransactions(string address, long confirmations)
        {
            Storage.Types.SyncTransactionAddressBalance stats = storage.AddressGetBalance(address, confirmations);

            if (stats == null)
            {
                return(new QueryAddress());
            }

            // filter
            var transactions = stats.Items.ToList();
            var confirmed    = transactions.Where(t => t.Confirmations >= confirmations).ToList();
            var unconfirmed  = transactions.Where(t => t.Confirmations < confirmations).ToList();

            return(new QueryAddress
            {
                Symbol = chainConfiguration.Symbol,
                Address = address,
                Balance = stats.Available,
                TotalReceived = stats.Received,
                TotalSent = stats.Sent,
                UnconfirmedBalance = stats.Unconfirmed,
                Transactions = confirmed.Select(t => new QueryAddressItem
                {
                    PubScriptHex = t.ScriptHex,
                    CoinBase = t.CoinBase,
                    CoinStake = t.CoinStake,
                    Index = t.Index,
                    SpendingTransactionHash = t.SpendingTransactionHash,
                    SpendingBlockIndex = t.SpendingBlockIndex,
                    TransactionHash = t.TransactionHash,
                    Type = t.Type,
                    Value = t.Value,
                    BlockIndex = t.BlockIndex,
                    Confirmations = t.Confirmations,
                    Time = t.Time
                }),
                UnconfirmedTransactions = unconfirmed.Select(t => new QueryAddressItem
                {
                    PubScriptHex = t.ScriptHex,
                    CoinBase = t.CoinBase,
                    CoinStake = t.CoinStake,
                    Index = t.Index,
                    SpendingTransactionHash = t.SpendingTransactionHash,
                    SpendingBlockIndex = t.SpendingBlockIndex,
                    TransactionHash = t.TransactionHash,
                    Type = t.Type,
                    Value = t.Value,
                    BlockIndex = t.BlockIndex,
                    Confirmations = t.Confirmations,
                    Time = t.Time
                })
            });
        }
Esempio n. 2
0
        public QueryAddress GetAddress(string address, long confirmations)
        {
            Storage.Types.SyncTransactionAddressBalance stats = storage.AddressGetBalance(address, confirmations);

            if (stats == null)
            {
                return(new QueryAddress());
            }

            return(new QueryAddress
            {
                Symbol = chainConfiguration.Symbol,
                Address = address,
                Balance = stats.Available,
                TotalReceived = stats.Received,
                TotalSent = stats.Sent,
                UnconfirmedBalance = stats.Unconfirmed,
                Transactions = Enumerable.Empty <QueryAddressItem>(),
                UnconfirmedTransactions = Enumerable.Empty <QueryAddressItem>()
            });
        }