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

AddTransactionToTotals() private method

private AddTransactionToTotals ( Paymetheus.Decred.Wallet.WalletTransaction tx, AccountProperties>.Dictionary modifiedAccounts ) : void
tx Paymetheus.Decred.Wallet.WalletTransaction
modifiedAccounts AccountProperties>.Dictionary
return void
        private void AddTransactionToTotals(WalletTransaction tx, Dictionary<Account, AccountProperties> modifiedAccounts)
        {
            var isCoinbase = BlockChain.IsCoinbase(tx.Transaction);

            foreach (var input in tx.Inputs)
            {
                TotalBalance -= input.Amount;

                var accountProperties = LookupAccountProperties(input.PreviousAccount);
                accountProperties.TotalBalance -= input.Amount;
                if (isCoinbase)
                    accountProperties.ImmatureCoinbaseReward -= input.Amount;
                modifiedAccounts[input.PreviousAccount] = accountProperties;
            }

            foreach (var output in tx.Outputs.OfType<WalletTransaction.Output.ControlledOutput>())
            {
                TotalBalance += output.Amount;

                var accountProperties = LookupAccountProperties(output.Account);
                accountProperties.TotalBalance += output.Amount;
                if (isCoinbase)
                    accountProperties.ImmatureCoinbaseReward += output.Amount;
                modifiedAccounts[output.Account] = accountProperties;
            }

            _transactionCount++;
        }