Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
metropolite
/
wp-content
/
plugins
/
mycryptocheckout
/
vendor
/
bitwasp
/
bitcoin
/
src
/
Serializer
/
Transaction
:
TransactionInputSerializer.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace BitWasp\Bitcoin\Serializer\Transaction; use BitWasp\Bitcoin\Script\Opcodes; use BitWasp\Bitcoin\Script\Script; use BitWasp\Bitcoin\Serializer\Types; use BitWasp\Bitcoin\Transaction\TransactionInput; use BitWasp\Bitcoin\Transaction\TransactionInputInterface; use BitWasp\Buffertools\Buffer; use BitWasp\Buffertools\BufferInterface; use BitWasp\Buffertools\Parser; class TransactionInputSerializer { /** * @var OutPointSerializer */ private $outpointSerializer; /** * @var \BitWasp\Buffertools\Types\VarString */ private $varstring; /** * @var \BitWasp\Buffertools\Types\Uint32 */ private $uint32le; /** * @var Opcodes */ private $opcodes; /** * TransactionInputSerializer constructor. * @param OutPointSerializerInterface $outPointSerializer * @param Opcodes|null $opcodes */ public function __construct(OutPointSerializerInterface $outPointSerializer, Opcodes $opcodes = null) { $this->outpointSerializer = $outPointSerializer; $this->varstring = Types::varstring(); $this->uint32le = Types::uint32le(); $this->opcodes = $opcodes ?: new Opcodes(); } /** * @param TransactionInputInterface $input * @return BufferInterface */ public function serialize(TransactionInputInterface $input) { return new Buffer( $this->outpointSerializer->serialize($input->getOutPoint())->getBinary() . $this->varstring->write($input->getScript()->getBuffer()) . $this->uint32le->write($input->getSequence()) ); } /** * @param Parser $parser * @return TransactionInput * @throws \BitWasp\Buffertools\Exceptions\ParserOutOfRange */ public function fromParser(Parser $parser) { return new TransactionInput( $this->outpointSerializer->fromParser($parser), new Script($this->varstring->read($parser), $this->opcodes), $this->uint32le->read($parser) ); } /** * @param BufferInterface|string $string * @return TransactionInput * @throws \BitWasp\Buffertools\Exceptions\ParserOutOfRange */ public function parse($string) { return $this->fromParser(new Parser($string)); } }