/** * @param Parser $parser * @return PrivateKey */ public function fromParser(Parser &$parser) { $bytes = $parser->readBytes(32); $multiplier = $bytes->getInt(); $privateKey = PrivateKeyFactory::fromInt($multiplier, false, $this->ecAdapter); return $privateKey; }
/** * @param string $wif * @return PrivateKeyInterface * @throws InvalidPrivateKey * @throws Base58ChecksumFailure */ public function parse($wif) { $payload = Base58::decodeCheck($wif)->slice(1); $size = $payload->getSize(); if (33 === $size) { $compressed = true; $payload = $payload->slice(0, 32); } else { if (32 === $size) { $compressed = false; } else { throw new InvalidPrivateKey("Private key should be always be 32 or 33 bytes (depending on if it's compressed)"); } } return PrivateKeyFactory::fromInt($payload->getInt(), $compressed); }
/** * Pass a secret exponent (integer) * @param integer|string $secret * @param EcAdapterInterface $ecAdapter * @return ElectrumKey */ public static function fromSecretExponent($secret, EcAdapterInterface $ecAdapter = null) { $ecAdapter = $ecAdapter ?: Bitcoin::getEcAdapter(); return new ElectrumKey($ecAdapter, PrivateKeyFactory::fromInt($secret, false, $ecAdapter)); }