/**
  * @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();
 }
예제 #2
0
 /**
  * @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);
 }