/**
  * @param NetworkInterface|null $network
  * @return string
  */
 public function getAddress(NetworkInterface $network = null)
 {
     $network = $network ?: Bitcoin::getNetwork();
     $witnessByte = dechex($this->witnessVersion);
     $witnessByte = strlen($witnessByte) % 2 == 0 ? $witnessByte : '0' . $witnessByte;
     $payload = Buffer::hex($this->getPrefixByte($network) . $witnessByte . "00" . $this->getHash());
     return Base58::encodeCheck($payload);
 }
 /**
  * @param NetworkInterface $network
  * @param PrivateKeyInterface $privateKey
  * @return string
  */
 public function serialize(NetworkInterface $network, PrivateKeyInterface $privateKey)
 {
     $serialized = Buffertools::concat(Buffer::hex($network->getPrivByte()), $this->hexSerializer->serialize($privateKey));
     if ($privateKey->isCompressed()) {
         $serialized = Buffertools::concat($serialized, new Buffer("", 1));
     }
     return Base58::encodeCheck($serialized);
 }
 /**
  * @param HierarchicalKey $key
  * @return string
  */
 public function serialize(HierarchicalKey $key)
 {
     $bytes = $this->hexSerializer->serialize($key);
     return Base58::encodeCheck($bytes);
 }
Example #4
0
 /**
  * @param ScriptInterface $script
  * @param NetworkInterface $network
  * @return String
  * @throws \RuntimeException
  */
 public static function getAssociatedAddress(ScriptInterface $script, NetworkInterface $network = null)
 {
     $classifier = new OutputClassifier($script);
     $network = $network ?: Bitcoin::getNetwork();
     try {
         if ($classifier->isPayToPublicKey()) {
             $address = PublicKeyFactory::fromHex($script->getScriptParser()->decode()[0]->getData())->getAddress();
         } else {
             $address = self::fromOutputScript($script);
         }
         return Base58::encodeCheck(Buffer::hex($network->getAddressByte() . $address->getHash(), 21));
     } catch (\Exception $e) {
         throw new \RuntimeException('No address associated with this script type');
     }
 }
Example #5
0
 /**
  * @param NetworkInterface|null $network
  * @return string
  */
 public function getAddress(NetworkInterface $network = null)
 {
     $network = $network ?: Bitcoin::getNetwork();
     $payload = Buffer::hex($this->getPrefixByte($network) . $this->getHash());
     return Base58::encodeCheck($payload);
 }
 /**
  * @param NetworkInterface $network
  * @param PrivateKeyInterface $privateKey
  * @return string
  */
 public function serialize(NetworkInterface $network, PrivateKeyInterface $privateKey)
 {
     $payload = Buffer::hex($network->getPrivByte() . $this->hexSerializer->serialize($privateKey)->getHex() . ($privateKey->isCompressed() ? '01' : ''));
     return Base58::encodeCheck($payload);
 }