private function getBasesOf(Transaction $transaction) { if ($transaction instanceof Base) { return [$transaction]; } $bases = []; foreach ($transaction->getInputs() as $input) { $bases = array_merge($bases, $this->getBasesOf($input->getTransaction())); } return $bases; }
private function outputsExist(Transaction $transaction) { $exists = true; foreach ($transaction->getInputs() as $input) { if (!array_key_exists($input->getOutputIndex(), $input->getTransaction()->getOutputs())) { $this->errors[] = 'Invalid output index'; $exists = false; } } return $exists; }