Ejemplo n.º 1
0
 public function invalidateProvisionalTransactions($found_addresses, $parsed_tx, $confirmations, $block_seq, $block, $block_event_context)
 {
     if ($confirmations < self::CONFIRMATIONS_TO_INVALIDATE_PROVISIONAL_TRANSACTIONS) {
         return;
     }
     $invalidated_provisional_transactions = $this->provisional_transaction_invalidation_handler->findInvalidatedTransactions($parsed_tx, $block_event_context['provisional_txids_by_utxo']);
     if ($invalidated_provisional_transactions) {
         foreach ($invalidated_provisional_transactions as $invalidated_provisional_transaction) {
             // send notification
             $invalidated_parsed_tx = $invalidated_provisional_transaction->transaction['parsed_tx'];
             $invalidated_found_addresses = $this->findMonitoredAndPaymentAddressesByParsedTransaction($invalidated_parsed_tx);
             $this->sendNotificationsForInvalidatedProvisionalTransaction($invalidated_parsed_tx, $parsed_tx, $invalidated_found_addresses, $confirmations, $block_seq, $block);
             // remove the provisional transactions
             $this->provisional_transaction_repository->delete($invalidated_provisional_transaction);
             // update accounts
             AccountHandler::invalidate($invalidated_provisional_transaction);
             try {
                 TXOHandler::invalidate($invalidated_provisional_transaction);
             } catch (Exception $e) {
                 EventLog::logError('utxo.send.error', $e, ['txid' => $parsed_tx['txid'], 'confirmations' => $confirmations]);
                 throw $e;
             }
         }
     }
 }