for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types=1);
namespace BitWasp\Bitcoin\Key\Factory;
use BitWasp\Bitcoin\Bitcoin;
use BitWasp\Bitcoin\Crypto\EcAdapter\Adapter\EcAdapterInterface;
use BitWasp\Bitcoin\Crypto\EcAdapter\EcSerializer;
use BitWasp\Bitcoin\Crypto\EcAdapter\Key\PublicKeyInterface;
use BitWasp\Bitcoin\Crypto\EcAdapter\Serializer\Key\PublicKeySerializerInterface;
use BitWasp\Buffertools\Buffer;
use BitWasp\Buffertools\BufferInterface;
class PublicKeyFactory
{
/**
* @var PublicKeySerializerInterface
*/
private $serializer;
* PublicKeyFactory constructor.
* @param EcAdapterInterface $ecAdapter
public function __construct(EcAdapterInterface $ecAdapter = null)
$ecAdapter = $ecAdapter ?: Bitcoin::getEcAdapter();
$this->serializer = EcSerializer::getSerializer(PublicKeySerializerInterface::class, true, $ecAdapter);
}
* @param string $hex
* @return PublicKeyInterface
* @throws \Exception
public function fromHex(string $hex): PublicKeyInterface
return $this->fromBuffer(Buffer::hex($hex));
* @param BufferInterface $buffer
public function fromBuffer(BufferInterface $buffer): PublicKeyInterface
return $this->serializer->parse($buffer);