public function updateUTXOs($found_addresses, $parsed_tx, $confirmations, $block_seq, Block $block = null)
 {
     $sources = $parsed_tx['sources'] ? $parsed_tx['sources'] : [];
     // get all destinations, including change addresses
     $destinations = TXOHandler::extractAllDestinationsFromVouts($parsed_tx);
     // determine matched payment addresses
     foreach ($found_addresses['payment_addresses'] as $payment_address) {
         // Log::debug("upating account balances for payment address {$payment_address['address']}.  txid is {$parsed_tx['txid']}");
         if (in_array($payment_address['address'], $sources)) {
             // this address sent some UTXOs
             try {
                 TXOHandler::send($payment_address, $parsed_tx, $confirmations);
             } catch (Exception $e) {
                 EventLog::logError('utxo.send.error', $e, ['txid' => $parsed_tx['txid'], 'confirmations' => $confirmations]);
                 throw $e;
             }
         }
         if (in_array($payment_address['address'], $destinations)) {
             // this address received some UTXOs
             try {
                 TXOHandler::receive($payment_address, $parsed_tx, $confirmations);
             } catch (Exception $e) {
                 EventLog::logError('utxo.send.error', $e, ['txid' => $parsed_tx['txid'], 'confirmations' => $confirmations]);
                 throw $e;
             }
         }
     }
 }