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++;
}