/** * @param OutputInterface $output * @param $userHost * @param Version $version */ private function renderVersion(OutputInterface $output, $userHost, Version $version) { $output->writeln(' <info>Results of connection to ' . $userHost . "</info>:"); $output->writeln(' Protocol Version: ' . $version->getVersion() . ""); $output->writeln(' User agent: ' . $version->getUserAgent()->getBinary() . ""); $services = $version->getServices()->getInt(); $hasServices = implode(" ", array_map(function ($value) use($services) { return $services == constant('\\BitWasp\\Bitcoin\\Networking\\Messages\\Version::' . $value) ? $value : ''; }, ['NODE_NETWORK', 'NODE_GETUTXOS'])); $output->writeln(' Services: ' . $version->getServices()->getInt() . " " . $hasServices); $output->writeln(' Requesting relay: ' . ($version->getRelay() ? 'true' : 'false') . ""); $output->writeln(' Timestamp: ' . $version->getTimestamp() . ""); $output->writeln(' Nonce: ' . $version->getNonce() . ""); $output->writeln(' Chain height: ' . $version->getStartHeight() . ""); $output->writeln(' Their address: ' . $version->getSenderAddress()->getIp() . ""); $output->writeln(' Their port: ' . $version->getSenderAddress()->getPort() . ""); $output->writeln(' Our address: ' . $version->getRecipientAddress()->getIp() . ""); $output->writeln(' Our port: ' . $version->getRecipientAddress()->getPort() . ""); }
/** * @param Version $version * @return \BitWasp\Buffertools\Buffer */ public function serialize(Version $version) { return $this->getTemplate()->write([$version->getVersion(), $version->getServices(), $version->getTimestamp(), $version->getRecipientAddress()->getBuffer(), $version->getSenderAddress()->getBuffer(), $version->getNonce(), $version->getUserAgent(), $version->getStartHeight(), $version->getRelay()]); }