Paymetheus.Decred.Wallet.Wallet.CalculateSpendableBalance C# (CSharp) Method

CalculateSpendableBalance() public method

public CalculateSpendableBalance ( Account account, int minConf ) : Amount
account Account
minConf int
return Amount
        public Amount CalculateSpendableBalance(Account account, int minConf)
        {
            var balance = LookupAccountProperties(account).ZeroConfSpendableBalance;

            if (minConf == 0)
            {
                return balance;
            }

            var unminedTxs = RecentTransactions.UnminedTransactions;
            foreach (var output in unminedTxs.SelectMany(kvp => OutputsToAccount(kvp.Value.Outputs, account)))
            {
                balance -= output.Amount;
            }

            if (minConf == 1)
            {
                return balance;
            }

            var confHeight = BlockChain.ConfirmationHeight(ChainTip.Height, minConf);
            foreach (var block in RecentTransactions.MinedTransactions.ReverseList().TakeWhile(b => b.Height >= confHeight))
            {
                var unconfirmedTxs = block.Transactions;
                foreach (var output in unconfirmedTxs.SelectMany(tx => OutputsToAccount(tx.Outputs, account)))
                {
                    balance -= output.Amount;
                }
            }

            return balance;
        }