/** * @param Parser $parser * @return \BitWasp\Bitcoin\Block\Block * @throws \BitWasp\Buffertools\Exceptions\ParserOutOfRange */ public function fromParser(Parser $parser) { /** @var Buffer $bytes */ /** @var int|string $blockSize */ list($bytes, $blockSize) = $this->getHeaderTemplate()->parse($parser); if ($bytes->getHex() !== $this->network->getNetMagicBytes()) { throw new \RuntimeException('Block version bytes did not match network'); } return $this->blockSerializer->fromParser(new Parser($parser->readBytes($blockSize))); }
/** * @param Parser $parser * @return \BitWasp\Bitcoin\Block\BlockInterface */ public function fromParser(Parser $parser) { $parsed = $this->blockSerializer->fromParser($parser); $this->storage->attach($parsed, $parsed->getBuffer()); return $parsed; }