/** * @return \BitWasp\Buffertools\Template */ public function getTemplate() { return (new TemplateFactory())->vector(function (Parser $parser) { $header = $this->header->fromParser($parser); $parser->readBytes(1); return $header; })->getTemplate(); }
/** * @param Parser $parser * @return BlockInterface * @throws ParserOutOfRange */ public function fromParser(Parser $parser) { try { return new Block($this->math, $this->headerSerializer->fromParser($parser), new TransactionCollection($this->getTxsTemplate()->parse($parser)[0])); } catch (ParserOutOfRange $e) { throw new ParserOutOfRange('Failed to extract full block header from parser'); } }
/** * @param Parser $parser * @return FilteredBlock */ public function fromParser(Parser $parser) { $header = $this->headerSerializer->fromParser($parser); $partialTree = $this->treeSerializer->fromParser($parser); return new FilteredBlock($header, $partialTree); }