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