示例#1
0
 /**
  * @param PublicKeyInterface $publicKey
  * @return bool
  */
 public function checkInvolvesKey(PublicKeyInterface $publicKey)
 {
     $binary = $publicKey->getBinary();
     foreach ($this->keys as $key) {
         if ($key->getBinary() === $binary) {
             return true;
         }
     }
     return false;
 }
 /**
  * @param \BitWasp\Bitcoin\Signature\TransactionSignatureInterface $signature
  * @param PublicKeyInterface $publicKey
  * @return ScriptInterface
  */
 public function payToPubKeyHash(TransactionSignatureInterface $signature, PublicKeyInterface $publicKey)
 {
     return ScriptFactory::create()->push($signature->getBuffer())->push($publicKey->getBuffer())->getScript();
 }
示例#3
0
 /**
  * @param PublicKeyInterface $publicKey
  * @return bool
  */
 public function checkInvolvesKey(PublicKeyInterface $publicKey)
 {
     return $publicKey->getPubKeyHash()->getBinary() === $this->hash->getBinary();
 }
 /**
  * Create a P2PKH output script
  *
  * @param PublicKeyInterface $public_key
  * @return ScriptInterface
  */
 public function payToPubKeyHash(PublicKeyInterface $public_key)
 {
     return ScriptFactory::create()->op('OP_DUP')->op('OP_HASH160')->push($public_key->getPubKeyHash())->op('OP_EQUALVERIFY')->op('OP_CHECKSIG')->getScript();
 }
示例#5
0
 /**
  * @param int|string $sequence
  * @param bool $change
  * @return PrivateKeyInterface|PublicKeyInterface
  */
 public function deriveChild($sequence, $change = false)
 {
     return $this->publicKey->tweakAdd($this->getSequenceOffset($sequence, $change));
 }